理解 rm 命令

理解 rm 命令

我已经在家中使用 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

  1. 开关“r”用于允许 rm 命令删除文件夹(包括其中的文件)。
  2. 开关“f”指示 rm 强制完全删除文件。在这种情况下,如果文件或文件夹不存在,rm 命令将不会给出任何错误消息。

相关内容