1
A
回答
2
不,没有标准的工具(虽然没有什么能阻止你从编写这样的野兽)。
的常用方法做这样的事情是有一个条件序列:
rm -rf folder_name && mkdir -p folder_name
这将做rm
,然后,只要它返回成功,使目录重新。
一个你如果你想要一个简单的“命令”可以做的事情是把它放在一个函数:
remakedir()
{
[[ -n "$1" ]] && rm -rf "$1" && mkdir -p "$1"
}
然后一些简单的测试表明它在行动:
pax> remakedir /tmp/xyzzy ; touch /tmp/xyzzy/plugh1 ; ls -al /tmp/xyzzy
total 8
drwxrwxr-x 2 pax pax 4096 Jun 23 09:29 .
drwxrwxrwt 10 root root 4096 Jun 23 09:29 ..
-rw-rw-r-- 1 pax pax 0 Jun 23 09:29 plugh1
pax> remakedir /tmp/xyzzy ; touch /tmp/xyzzy/plugh2 ; ls -al /tmp/xyzzy
total 8
drwxrwxr-x 2 pax pax 4096 Jun 23 09:29 .
drwxrwxrwt 10 root root 4096 Jun 23 09:29 ..
-rw-rw-r-- 1 pax pax 0 Jun 23 09:29 plugh2
+0
请注意,这将删除当前目录中的所有内容,这意味着如果当前内容大小可用,则可以在删除运行时注入新项目,从而导致操作不稳定时间过长。 – ChuckCottrill
1
Posix没有一个可以做你想做的事情的命令。但是,以下内容将(大部分)完成您想要的内容(减少目录缺失和/或不可用时的时间窗口)。
建立一个临时目录(保存你即将删除的东西)。
delete=`mktemp -d ./delete.XXXXXX`
folder="folder_name"
将现有的文件夹移到一边(以便以后删除)。这是 '关键部分',
mv ${folder} ${delete}/ && mkdir ${folder}
然后删除(先前)存在于您的方便,
if [ -d ${folder} ] ; then rm -rf ${delete}/; fi
相关问题
- 1. Bash命令 - 删除目录
- 2. 使用单行命令删除目录
- 3. Java重命名旧目录或删除它以创建一个新目录
- 4. 是否可以在同一命令上创建多个目录?
- 5. 创建后无法删除目录
- 6. 我可以通过删除目录来删除imagemagick吗?
- 7. 我可以在客户端PC上创建一个目录吗?
- 8. 是否可以在单个命令中编译src目录?
- 9. 我可以在GitHub的子目录中创建README文件吗?
- 10. 我可以在数据库目录中创建文件吗?
- 11. DOS命令来删除特定目录
- 12. 使用svn一次删除多个目录,然后我可以用同名的新目录替换它们
- 13. 创建下使用单个命令所有目录的新目录:Linux的
- 14. bash命令删除所有,但最后5个目录
- 15. 我可以用一行代码创建2个目录吗?
- 16. 如何在一个Perl命令中创建目录和父目录?
- 17. 我可以在$ git clone和$ make install后删除目录
- 18. 我可以指定shell命令的目录吗?
- 19. 我可以在不改变母目录的情况下在母目录下创建并行子目录吗?
- 20. 创建一个目录,然后在里面创建文件
- 21. 我可以在wordpress根目录下创建“inc”文件夹吗?
- 22. 显示wordpress目录的URL - 我可以删除它吗?
- 23. 什么是npm tmp目录?我可以删除它吗?
- 24. 使用Windows命令行在每个目录下创建子目录
- 25. Python3 venv:env目录可以重命名吗?
- 26. 创建从后值中的目录,然后插入内容到该目录
- 27. 创建目录并最终删除它
- 28. 我可以在Bonobo GIT服务器中创建多个存储库目录吗?
- 29. gradle可以创建java项目目录结构吗?
- 30. 输入dirs命令后,我将在哪个目录中?
是'RM ..; mkdir ..'(也就是说,使用[command sequence](https://unix.stackexchange.com/questions/184493/consecutive-commands))是不够的?这些通常是两个不同的行为 - 因此是两个不同的命令。或者,只需删除目录的*内容*,但对inode有不同的影响,可能是权限。 – user2864740
刚刚用'rm -rf folder_name/*'删除内容怎么样? –