如何删除当前目录(包括当前目录)中的所有文件?
-
23-08-2019 - |
题
如何删除当前目录(包括当前目录)中的所有文件和子目录?
解决方案
在使用 GNU 工具的 bash 下,我会这样做(在大多数情况下应该是安全的):
rm -rf -- "$(pwd -P)" && cd ..
不在 bash 下并且没有 GNU 工具,我会使用:
TMP=`pwd -P` && cd "`dirname $TMP`" && rm -rf "./`basename $TMP`" && unset TMP
为什么这更安全:
- 参数列表结尾为
--
如果我们的目录以破折号开头(非 bash:./
文件名之前) pwd -P
不只是pwd
如果我们不在真实目录中而是在指向它的符号链接中。"
如果目录包含空格,则在参数周围加上 s
一些随机信息(bash版本):
- 这
cd ..
最后可以省略,但否则你将位于一个不存在的目录中......
编辑:正如 kmkaplan 指出的那样, --
事情没有必要,因为 pwd
返回始终以以下字符开头的完整路径名 /
在 UNIX 上
其他提示
olddir=`pwd` && cd .. && rm -rf "$olddir"
是需要的cd ..
,否则会失败,因为不能删除当前目录。
rm -fr "`pwd`"
我认为这将是在DOS / Windows的CMD可能的,但我不能完全找到一种方法来管命令之间的数据。其他人可能知道的修补程序是什么?
FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%
操作系统?在基于* NIX-的东西,你正在寻找“室射频目录/”
请注意:关于“递归”的“-r”标志可以是危险的
您才可以回去目标文件夹的父文件夹,然后使用“室射频yourFolder”。 或者您可以使用“室射频*”从当前文件夹中删除所有文件和子文件夹。
不隶属于 StackOverflow