如何从当前目录中删除所有文件和子目录,包括当前目录?
在使用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 ..
在年底可以省略,但你会在一个不存在的目录,否则......
编辑:正如kmkaplan所指出的那样,--
事情是没有必要的,因为pwd
返回始终/
在UNIX上开始的完整路径名