rm 只删除文件,不删除文件夹

Zur*_*ser 6 command-line rm

我有一个这样的目录:

<folder1>
<folder2>
<folder3>
file1
file2
file3
Run Code Online (Sandbox Code Playgroud)

像这样的 rm 命令是什么,只删除文件 1、文件 2、文件 3 但保留文件夹 1、文件夹 2 和文件夹 3 及其内容不变?

Oli*_*Oli 10

rm默认情况下不会删除目录。因此,在您的示例中,假设您在父目录中并且这些是所有文件,您只需要:

rm *
Run Code Online (Sandbox Code Playgroud)

这是一个危险的命令。如果您忘记了自己的位置,这样的命令可以清除重要$HOME文件、清除大量照片、取消圣诞节等等。*在运行它之前确保您知道正在选择什么。echo *是测试扩展的好方法。

一个理智的人file1 file2 file3可能会运行rm file*rm file{1..3}使用一些 Bash 的扩展代码,而不会抓住任何你在交火中没有想到的落后者。


要删除目录,您需要指定:

  • -d 删除空目录,或
  • -r 递归删除文件及其目录。