如何删除所有名为“output”的子目录的内容?

如何删除所有名为“output”的子目录的内容?

我从网上下载了一个项目。构建项目时,它会在名为的文件夹中生成输出文件输出问题是有许多同名的文件夹。我需要手动删除所有output目录中的文件。

我用了这个命令

find . -type d -name "output" -print

它显示所有同名目录的位置。

然后我用了这个命令

find . -type d -name "output" -delete

查找:无法删除“./output”:目录不为空

我不想删除该output文件夹,我想删除该output文件夹名称下的所有文件。

答案1

如果您find-mindepth并且-delete(至少是 GNU 或 BSD):

find . -name output -type d -exec find {} -mindepth 1 -delete \;

答案2

您可以根据find您的版本使用以下方法。

GNU 发现:

find . -type f -path '*/output/*' -exec echo rm -f {} \;

POSIX-查找

find . -type d -name output -exec sh -c 'find "$1"/. ! -name . -prune -type f -exec rm -f \{\} \;' {} {} \;

相关内容