查找仅包含零大小文件的目录

时间:2018-08-28 11:18:41

标签: linux bash shell

我大约有2000个目录,

(0123)ABC45
(0124)DEF97
.....
(1253-1)XYZ_ZXY
....

有些目录包含的文件大小为零,这是由于未成功从存档中提取文件。我需要找到所有这些目录(或只是括号中的数字)。我的命令是这样做的:

find . -type f -size 0 |cut -d')' -f 1 |cut -d'(' -f 2 |sort -u

但是此命令查找包含至少一个零大小文件的目录,并且我需要每个文件的大小为0字节的目录。怎么做?

2 个答案:

答案 0 :(得分:1)

可能不是最高效的(每个子目录调用find,再调用一次以查找所有子目录),但这应该可以:

while IFS= read -r -d $'\0' dir; do
    if [[ -z "$(find "$dir" -maxdepth 1 -type f -size +0c)" ]]; then
        printf '%s\n' "$dir"
    fi
done < <(find . -mindepth 1 -type d -print0)

答案 1 :(得分:0)

sections = sectionSoup.findAll("h2")
sections += sectionSoup.findAll("h3")
sections += sectionSoup.findAll("h4")

显示总大小<= 4K(表示为空或由0个大小的文件填充)的(子)文件夹。