我使用别名rm
,rm -i
以便当我输入错误时file*
,在file *
意外删除我不打算删除的文件之前收到提示。目录是否有等效的习惯用法?
特别是,要删除目录及其内容,您必须rm -r
.使用时rm -ri
会提示您输入其中的所有文件,而不仅仅是顶级目录。对于包含大量文件的目录来说,这并不方便。为了避免这种情况,我经常使用rm -rf
,但这让我害怕。我只差一个错字就可以吹走很多重要的东西(例如,rm -rf ~ /foo
而不是rm -rf ~/foo
——哎呀!)。
人们可以编写一个稍微烦人的脚本来替换,例如,将 rmdir 替换为仅提示命令行上列出的内容的内容,但似乎这种问题应该已经存在解决方案。
答案1
rm -i
会变得非常烦人,尤其是在递归删除时。
rm -I
,另一方面似乎更容易忍受,这会提示一次删除之前更多的比三文件,或者当移除时递归地。
它是很多侵入性较小,同时仍能提供保护最多错误。
这最好的保护形式是在递归删除时进行双重/三重检查或更好,任何事物你删除。
答案2
您可以 cd 到要递归删除的顶级目录,然后上一级并 rm 该目录。这样你就不必使用前导斜杠等。
cd /home/user/junk
ls -1
folders
to
delete
rm -ri . ###Or "rm -rf ."
cd ..
rm -rf junk
检查任何命令的路径是否正确的另一种方法是使用制表符补全。
答案3
一种选择是使用垃圾桶方法,例如这里。
除了这个之外,还有很多例子 - 这只是我搜索结果中的第一个。基本上,所有 rm 操作都变成了 mv 命令。如果您输入了错误的文件,它们仍然在计算机上并且可以轻松恢复。上面链接的方法为基本 rm 命令创建了一个别名,因此您仍然可以在真正需要时使用它。