我想删除download
文件夹中的所有目录。
/content/download/documents/
/content/download/music/
/content/download/videos/
/content/download/pictures/
我尝试使用删除它们,rm
但它不起作用。
rm -rf '/content/download/*/'
答案1
通配符*
不会在引号内扩展(无论是在单引号内还是在双引号内),因此您需要将其写在引号外:
rm -rf '/content/download/'*/
但是,仅当路径或文件名包含空格/换行符或 shell 特有的其他一些字符时才需要引号,以防止 shell 解释它们。
尾随/
,*/
将扩展到目录类型的所有文件符号链接解析后,因此还将包含目录的符号链接。对于那些人来说,扩张将是类似的/content/download/dirlink/
。这些会发生什么取决于rm
实施。对于基于 Linux 的系统上常见的那些,这将删除内容(递归地)符号链接的目标目录,但不是符号链接或目录本身。
另请注意,它不会删除隐藏目录。
如果您的 shell 是 bash,您可以在其手册中阅读更多信息,特别是:
答案2
find ~/Downloads -mindepth 1 -maxdepth 1 -type d | xargs rm -rf
此解决方案不依赖于您正在使用的特定 shell( bash
、等)。zsh