如何从当前目录中删除所有文件和子目录,包括当前目录?
答案 0 :(得分:12)
在使用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
我们不在真实目录中,而是在指向它的符号链接中。"
围绕参数,如果目录包含空格一些随机信息(bash版本):
cd ..
可以省略,但你会在一个不存在的目录中,否则...... {/ li>
编辑:正如kmkaplan所指出的那样,--
没有必要,因为pwd
会返回在UNIX上始终以/
开头的完整路径名< / p>
答案 1 :(得分:4)
olddir=`pwd` && cd .. && rm -rf "$olddir"
需要cd ..
,否则它将失败,因为您无法删除当前目录。
答案 2 :(得分:1)
rm -fr "`pwd`"
答案 3 :(得分:1)
我认为这在DOS / Windows CMD下是可行的,但我找不到在命令之间管道数据的方法。其他人可能知道这个问题吗?
FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%
答案 4 :(得分:0)
操作系统?在基于* NIX的东西上,你正在寻找'rm -rf目录/'
注意:'recursive'的'-r'标志可能很危险!
答案 5 :(得分:0)
您可以返回目标文件夹的父文件夹,然后使用'rm -rf yourFolder'。 或者您可以使用'rm -rf *'从当前文件夹中删除所有文件和子文件夹。