我有一个文件(名为excl.txt(,其字符串以null结尾,如下所示:
/data/folder1
/data/folder2
/data/*.tsv
...
为了计算/data文件夹的大小,不包括上面文件中的模式,我使用命令:
du -csh --exclude-from=excl.txt /data
但它不起作用:
du -csh --exclude-from=excl.txt /data
552G /data
552G total
du -csh /data
552G /data
552G total
excl.txt最初是手动创建的(通过一行一行地输入oney并按enter键(,然后使用以下命令,以便用null术语替换换行
cat excl_init.txt | tr 'n' ' ' > excl.txt
发生了什么事?
发生了什么?
您传递了一个零分隔的文件,而du
需要一个换行的文件。
用换行符替换零。
或者,如果确实需要,可以使用--exclude
选项正确地传递表达式。
mapfile -d '' -t arr < excl.txt
for i in "${arr[@]}"; do
args+=(--exclude="$i")
done
du -csg "${args[@]}" /data
现在似乎可以工作了。刚刚在所有行的末尾添加了*