什么是最安全的方式来清空* nix中的目录?

我很害怕,总有一天我会在我目前使用的命令中放置一个空间或者错过一些东西:

rm -rf ./* 

有清空当前目录内容的安全方法吗?

Solutions Collecting From Web of "什么是最安全的方式来清空* nix中的目录?"

最安全的方法是在按Enter键之前坐在你的手上。

除此之外,你可以创建一个这样的别名(对于Bash)

别名rm =“pwd; read; rm”

这将显示你的目录,等待一个输入按,然后删除你指定的正确的标志。 您可以通过按^ C而不是Enter来取消。

这是一个更安全的方法:首先使用ls列出将要受影响的文件,然后使用命令行历史记录或历史替换将ls更改为rm ,然后在确信正确的文件将被操作后再次执行该命令。

我认为这是一个合理的方法:

 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参数。 但我会用它们,以防万一:)

如果你想要非常安全,你可以创建一个简单的别名或shell脚本,如:

mv $ 1〜/ .recycle /

这只会将你的东西移动到.recycle文件夹(你好,Windows!)。

然后,设置一个cron作业来执行rm -rf,该文件夹的内容超过一周。

去一个级别,并输入目录名称

 rm -rf <dir>/* 

我使用以下之一:

 rm -fr . cd ..; rm -fr name-of-subdirectory 

我很少附加到一个目录,我想摆脱内容,但必须保持目录本身。

当使用rm -rf时,我几乎总是使用完全限定的路径。

使用trash命令。 在Debian / Ubuntu /等,它可以从trash-cli安装。 它对文件和目录都有效(因为它确实在移动文件,而不是立即删除它)。

trash实现了freedesktop.org垃圾桶规范 ,与GNOME和KDE垃圾桶兼容。

文件可以使用来自同一个软件包的restore-trash ,或通过通常的GUI来取消删除。

您可以随时打开-i ,这会在每个文件中提示您,但是对于大型目录来说这将非常耗时。

我总是先做pwd

我甚至会创建一个别名,以便强制提示我的用户。 我认为,红帽默认这样做。

你可以放下`f'开关,它会提示你输入每个文件,确保你真的想删除它。

如果你想做的是吹走一个完整的目录,那么这个操作总是有一定程度的危险。 如果你真的想确保你做的是正确的事情,你总是可以在/ tmp之类的地方做一个移动操作,请等待一段时间,确保所有的东西都可以正常使用。 然后进入/ tmp目录,只使用相对路径进行强制和递归删除操作。 另外,在移动时重命名为“delete-directoryname”,使其更容易不出错。

例如,我想删除/ opt /文件夹,所以我这样做:

mv / opt / folder / tmp / delete-folder

等等,以确保一切都可以 – 也许一分钟,也许一个星期….

cd / tmp

PWD

rm -rf delete-folder /

执行rm -rf最重要的技巧是始终使用相对路径。 这样可以防止在输入完成之前键入a /。

我有一个原因[tcsh]:

 alias clean '\rm -i -- "#"* *~' alias rmo 'rm -- *.o' 

它们是我第一次在*和.o之间意外放置一个空格。 我只想说,发生的事情并不是我预期会发生的事情。

但事情可能会更糟。 回到90年代初,我的一个朋友有一个〜/ etc目录。 他想删除它。 不幸的是,他输入rm -rf / etc。 不幸的是,他以root身份登录。 他有一个糟糕的一天!


为了变邪恶: 触摸 – '-rf *'

为了安全起见,请使用' – '-i 。 或者一次搞定,并创建一个别名!