在任何操作系统中删除文件通常都非常简单,只需单击该文件然后按Delete键,或者右键单击并将其发送到回收站即可。 我们都知道该怎么做,这是删除摆在我们面前的文件的最佳选择。 但是,例如,当我们想要删除同一文件夹内的多个文件时,会发生什么? 碰巧在Linux中,我们有 rm命令 这将使我们几乎消除终端机中的任何东西。
“ Rm”是 «remove»的缩写,在英语中是«remove»。 它用于删除文件,如果以递归方式使用它,则还允许我们删除目录。 默认情况下,它不会删除目录,并且会删除命令行上指定的所有文件。 删除过程将文件系统上的文件名与其关联的数据断开链接,并将存储空间标记为可用于将来的写入。 您必须要小心,因为一旦使用rm删除了某些内容,就无法再将其恢复。
RM可用的选项
-f, -力 |
忽略不存在的文件,在删除之前不要询问。 |
-i | 删除前询问。 |
-I | 在删除三个以上的文件之前或在递归删除时询问一次。 |
-交互的[=WHEN] | 根据的问题 WHEN:从不,一次(-I)或始终(-i)。 是的 WHEN 没有指定,请经常询问。 |
–单文件系统 | 递归删除层次结构时,它将忽略与命令行参数对应的目录不同的目录中的任何目录。 |
–无保留根 | 它不会以任何特殊方式处理根目录。 |
–保留根 | 它不会删除根目录,这是默认行为。 |
-r, -R, –递归 |
递归删除目录及其内容。 |
-d, –迪尔 |
删除空目录。 此选项使我们无需指定-r / -R / –recursive即可删除目录。 |
-v, –详细 |
详细模式; 随时说明正在做什么。 |
-帮帮我 | 显示帮助信息。 |
-版 | 显示版本信息。 |
实际例子
rm 默认不删除目录。 为此,我们必须使用-r / -R / –recursive选项。 如果目录为空,请使用n -d / –dir选项。 如果要删除以破折号(-)开头的文件,则必须在文件名之前添加一个单独的双破折号(-)。 如果未添加第二个破折号,则rm可能会将文件名误解为选项。 值得记住的是,星号(*)表示“所有匹配项”,并加上“ *”。 并且仅在星号后面。
例如,要删除文件“ -test.txt”,我们将必须使用以下命令
rm -- -prueba.txt
以上是在我们个人文件夹中的情况。 如果没有,我们将必须添加完整路径,如下所示:
rm /home/pablinux/Documentos/-file
这两个选项之间的区别在于,在第二种情况下,它前面有一个斜杠(/),这使得该选项不会引起混淆。
其他示例是:
- rm -f test-txt:即使文件“ test.txt”受保护,也将删除它,而不会询问。
- R M *:它将从终端中删除我们所在目录中的所有文件。 如果它具有写保护,它将在删除它之前询问我们。
- rm -f *:无需询问即可删除目录中的所有内容。
- rm -i *-将尝试删除目录中的所有文件,但每次都要求删除一个文件。
- rm -I *:如上,但只会询问是否有三个以上的文件。
- rm -r目录,其中“目录”是特定目录:它将删除目录“目录”及其包含的所有文件和子目录。 如果任何文件或子目录受到写保护,它将询问。
- rm -rf目录:与上述相同,但不会询问。
您不应该使用的命令:rm -rf /
最后,我们可以在社交网络上看到一个比其他任何事情都更可笑的命令。 上面的命令 表示1-删除,2-尽可能递归,3-从根开始。 由于Linux管理驱动器的方式,它还将删除我们连接到计算机的任何硬盘驱动器的内容。 如果您使用它,请不要说我们没有警告。
有趣的是,关于最后一个命令的说明很有趣,我知道我可以删除系统所在磁盘的所有内容,但是我不知道它也删除了我们连接的任何其他磁盘的内容!
非常感谢您,您的帖子非常有用,我很轻松地解决了我的问题,但是没有它我不会成功。