du——排除不能排除

  • 本文关键字:排除 不能 du bash du
  • 更新时间 :
  • 英文 :


我有一个文件(名为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

现在似乎可以工作了。刚刚在所有行的末尾添加了*

最新更新