小智 6
不,并且有几个原因:1)该命令将尝试删除.
当前目录,因此会失败;2) 该命令不会删除以“.”开头的“隐藏”文件 特点; 3) 该命令不会删除目录。
你可以使用rm -rf *
. 这将删除所有文件和目录,但不会删除点文件。您可以使用find . -type f | xargs rm
删除包括隐藏文件在内的所有文件,但这不会删除目录。
所以,你可以使用这个:
$ find . -print0 -type f -o -type d -not -name '\.' | xargs -0 rm -rf
Run Code Online (Sandbox Code Playgroud)
在这里,您递归地查找所有文件和目录(只要它们不被称为“.”),然后将其删除。在-print0
和-0
参数允许它正确地处理文件名在其名称中的空白。
我通常只是在层次结构中向上移动一级,然后按名称删除目录并重新创建它:
cd ..
rm -rf dirname
mkdir dirname
cd dirname
Run Code Online (Sandbox Code Playgroud)
因为这消除了rm -rf *
在错误目录中使用的错误情况。
注意:如果目录具有非标准权限或由其他帐户拥有,则在删除并重新创建目录时将丢失该目录。这对我来说不是经常出现的事情,但值得思考。
如果我需要在脚本中执行此操作,我可能会创建一个函数来保存当前目录,向上移动一个级别,删除并创建新的空目录,然后移动到那里。
归档时间: |
|
查看次数: |
2349 次 |
最近记录: |