我有一个包含数百个子文件夹的文件夹。我需要在子文件夹中递归查找那些不包含某些文件的文件夹(例如 *ch.pdf 或 *.jpg),并将结果导出到 txt 文件。提前谢谢
答案1
给你:
find <folder> -type d -exec bash -c "ls {} | grep -i \".*ch\.pdf$\|.*\.jpg$\" > /dev/null || echo {}" \; > <target file>
简要说明:
- 递归列出 <folder> 内的所有文件夹
- 对于找到的每个文件夹 - 列出所有文件并检查是否有以“ch.pdf”或“.jpg”结尾的文件。我们对这些文件不感兴趣,因此将输出重定向到 /dev/null。
- 如果没有找到这样的文件,则使用 打印相对文件夹路径
echo
。 - 将结果重定向
find
到 <目标文件>