我害怕有一天,我要在我目前使用的命令中放一个空格或错过一些东西:
rm -rf ./*
清空当前目录的内容有更安全的方法吗?
最安全的方法是在按Enter键之前先坐在你的手上.
除此之外,您可以创建一个像这样的别名(对于Bash)
alias rm="pwd;read;rm"
这将显示您的目录,等待输入按,然后使用正确的标记删除您指定的内容.您可以按^ C而不是Enter来取消.
这是一种更安全的方法:ls
首先使用列出将受影响的文件,然后使用命令行历史记录或历史记录替换来更改ls
to rm
并在确信将对其进行操作后再次执行命令.
如果您想要非常安全,可以创建一个简单的别名或shell脚本,如:
mv $ 1~/.recycle /
这只会将你的东西移动到.recycle文件夹(你好,Windows!).
然后设置一个cron作业来对该文件夹中超过一周的东西做rm -rf.
我认为这是一种合理的方式:
find . -maxdepth 1 \! -name . -print0 | xargs -0 rm -rf
它还将处理隐藏的文件和目录.点后不需要斜线,这也将消除可能的打字事故. /
.
现在,如果您担心它会删除什么,只需将其更改为
find . -maxdepth 1 \! -name . -print | less
看看清单.现在你可以把它放到一个函数中:
function enum_files { find . -maxdepth 1 \! -name . "$@"; }
现在你的删除是安全的:
enum_files | less # view the files enum_files -print0 | xargs -0 rm -rf # remove the files
如果您不习惯在文件名中嵌入换行符,则可以省略-print0
和-0
参数.但我会使用它们,以防万一:)