如何从当前目录(包括当前目录)中删除所有文件和子目录?
Ib33X
问问题
8538 次
6 回答
15
在使用 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 ..
的 the 可以省略,但否则你将在一个不存在的目录中......
编辑:正如 kmkaplan 所指出的,这--
不是必需的,因为它返回在 UNIX 上pwd
始终以开头的完整路径名/
于 2009-02-15T14:21:18.700 回答
4
olddir=`pwd` && cd .. && rm -rf "$olddir"
是必需的cd ..
,否则它将失败,因为您无法删除当前目录。
于 2009-02-15T14:14:14.693 回答
2
rm -fr "`pwd`"
于 2009-02-15T14:16:04.843 回答
1
我认为这在 DOS / Windows CMD 下是可能的,但我找不到在命令之间传递数据的方法。其他人可能知道解决方法?
FOR /F %i IN ('cd') DO SET MyDir=%i | CD .. | RD /S %MyDir%
于 2009-02-15T15:14:02.303 回答
0
操作系统?在基于 *NIX 的东西上,您正在寻找 'rm -rf directory/'
注意:“递归”的“-r”标志可能很危险!
于 2009-02-15T14:13:16.410 回答
0
您只需返回目标文件夹的父文件夹,然后使用“rm -rf yourFolder”。或者您可以使用 'rm -rf *' 从当前文件夹中删除所有文件和子文件夹。
于 2014-10-19T03:15:14.517 回答