如何查找缺少特定文件的 Mac 文件夹

如何查找缺少特定文件的 Mac 文件夹

有没有办法检查 Mac 上的文件夹中是否有丢失的项目?

假设我想扫描我的外部硬盘,并找到标题中带有某个单词但缺少文件的所有文件夹Data.log

实现这一目标最简单的方法是什么,或者是否可行?

答案1

使用@Nifle 的出色答案,但包括您的具体内容,尝试:

% find /Volumes/WD -type d -name *[TEST]* | while read a; do if [ ! -f $a/Data.log ]; then echo $a; fi; done  

把这句话分解一下:

  • find /Volumes/WD -type d -name *[TEST]*:从文件树/Volumes/WD中遍历外部硬盘,查找名称中-type d包含某处 ( ) 的目录 ( )。 [TEST]-name *[TEST]*

  • 命令的输出find通过管道传输|到循环中bash while,循环每次拉出一个匹配的目录,将它们存储在变量中a

  • 在循环内:

    • if语句检查文件Data.log是否不在正在考虑的目录中。在if语句中,$a被扩展,因此$a/Data.log是类似 的路径/Volumes/WD/<dir1>/<dir2>/Data.log。要获得您感兴趣的测试 !,并且-f使用,以便只有不存在具有该名称的文件的情况才会评估为TRUE!NOT,并且-f表示文件而不是任何其他类型的文件系统条目,如目录或链接)。
    • 最后,如果我们找到一个匹配的目录,它将被打印出来,echo $a其中的内容$a被上面通过 from 管道传入的目录名替换find

我知道我正在重复以前的答案,但我希望这可以澄清@Nifle 提出的精彩单行代码中发生的事情并解决您的问题。

答案2

这应该可以解决问题,在 shell 中运行它。

find /Volumes/WD/ -type d -name '*TEST*' | while read a; do if [ ! -f $a/Data.log ]; then echo $a; fi; done;

相关内容