我已经在家中使用 Ubuntu 服务器有一段时间了,我注意到我对 bash 以及 rm 等一些危险工具的了解存在一些漏洞。
这是我一生中第一次使用 rm 删除我不想删除的东西……
pwd
: /media/storage/vod
ls
: css html series music movies
sudo rm *.QTFS
sudo rm -rf *.QTFS
上面这两个有什么区别?我指定了文件名。那么递归会在所有子目录中查找 *.QTFS 还是仅在当前目录 (vod) 内查找?我想稍后再说...所以在这种情况下递归标志不起作用,对吗?
sudo rm -R *.QTFS series/*
这是我的撤销命令。无论如何,在这种情况下,我只是给了 rm 两个单独的删除命令,对吗?
首先递归删除 *.QTFS,但这部分只查找当前目录 (vod)。其次递归删除系列目录的内容。
本质上,我想了解我是否删除了一些除了明显损害之外的东西。
答案1
和-r
都是-R
的别名--recursive
,其中手册页描述为:
递归删除目录及其内容
如果您执行rm -r file1 file2
此操作,则该选项将传递给两个文件。由于递归仅适用于目录(您不能在单个级别上进行递归操作),因此这只会删除两个文件。
如果您这样做rm -r folder1 folder2
,它将递归删除这些文件夹中的所有内容以及文件夹本身。
至于如何文件名扩展又称为通配符有效,*
表示任意数量的字符,因此*.QTFS
表示以$PWD
结尾的任何文件.QTFS
,并service/*
表示文件夹内的任何文件$PWD/service
。
话虽如此,只要那是您想要删除的内容,那就没问题。
使用-i
或--interactive
强制rm
在每次删除时要求确认,或者使用-I
或--interactive=once
询问一次您的命令是否要删除四个或更多文件,或者是否要递归删除文件。
使用-f
或--force
导致rm
静默忽略不存在的文件,并且在删除只读文件或目录之前不提示确认。
你可能想看看trash
如果您想要某种取消删除命令。它会与垃圾箱交互,让您可以在需要时选择后备方案。
答案2
- 开关“r”用于允许 rm 命令删除文件夹(包括其中的文件)。
- 开关“f”指示 rm 强制完全删除文件。在这种情况下,如果文件或文件夹不存在,rm 命令将不会给出任何错误消息。