我有数百个目录,每个目录中都有文件名中带有日期的文件,如下所示:
$cd dir1
$ls
20190915.file.gz
20190916.file.gz
20190917.file.gz
...
有时会出现某个文件夹中没有生成某个文件的情况。继续前面的示例,文件20190916.file.gzdir2 中可能缺少:
$cd dir2
$ls
20190915.file.gz
20190917.file.gz
...
我怎样才能只列出不包含的目录名称20190916.file.gz?
$find . | grep 20190916
将列出包含此文件的所有文件夹,所以基本上我只需要以某种方式反转此命令的输出
答案1
假设目录不是嵌套的,循环遍历目录并检查每个目录中是否存在该文件。
for d in */; do
if ! [ -e "$d/20190916.file.gz" ]; then
echo "Missing $d/20190916.file.gz"
fi
done