如何删除文件夹中的所有目录

Muj*_*aba 0 linux directory delete

我想删除download文件夹中的所有目录。

/content/download/documents/
/content/download/music/
/content/download/videos/
/content/download/pictures/
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用删除它们,rm但它不起作用。

rm -rf '/content/download/*/'
Run Code Online (Sandbox Code Playgroud)

αғs*_*нιη 7

通配符*不会在引号内展开(在单引号内或双引号内),因此您需要将其写出引号:

rm -rf '/content/download/'*/
Run Code Online (Sandbox Code Playgroud)

然而,仅当路径或文件名包含空格/换行符或其他一些 shell 特有的字符以防止 shell 解释它们时,才需要引号。

随着尾随/,*/在符号链接解析后扩展到所有类型为 directory 的文件,因此还将包含指向目录的符号链接。扩展将类似于/content/download/dirlink/那些。这些会发生什么取决于rm实现。对于通常在基于 Linux 的系统上找到的那些,这将删除符号链接的目标目录的内容(递归),但不会删除符号链接或目录本身。

另请注意,它不会删除隐藏目录。


如果您的 shell 是 bash,您可以在其手册中阅读更多内容,特别是: