gpt4 book ai didi

linux - 使用 du 估计列表文件中文件的空间量

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:49 26 4
gpt4 key购买 nike

我有一个如下所示的目录结构:

/here/are/my/files/

我的文件是按照某种约定命名的,比方说:

myfile_0001.txt
myfile_0001.bin
myfile_0001.xls
...(few other extensions)
myfile_0567.txt
myfile_0567.bin
myfile_0567.xls
... (few other extensions)

等等。扩展名可能会改变,或者可能有太多的标签 myfile_xxxx 无法关心它。
另一方面,我有包含以下条目的文件 list.txt:

myfile_0001
myfile_1234
myfile_0204
... (label number is irregular).

我想做的是估计 list.txt(和只为他们)。
到目前为止我是怎么做到的:

file_list=$(for entry in $( cat list.txt); do ls /here/are/my/files/$entry* ; done)
du -shc $file_list

(它可以在没有 $file_list 变量的情况下组合成一行,但对我来说它看起来更具可读性)。
我可以只用 du 命令在一行中完成吗,比如

du -c "/here/are/my/files/$(cat list.txt)* | tail -1

(它不起作用,但我想得到类似形式的东西)

最佳答案

尝试

du -hs -c $(for line in `cat list.txt`; do ls $line; done) | tail -1 | awk '{print $1}'

这将仅以人类可读的格式打印文件大小

编辑:如果您想提供 list.txt 中未提供的静态路径,您可以这样做

du -hs -c $(for line in `cat list.txt`; do ls /path/to/files/${line}; done) | tail -1 | awk '{print $1}'

如果你想要list.txt中所有带有后缀的文件

du -hs -c $(for line in `cat list.txt`; do ls /path/to/files/${line}*; done) | tail -1 | awk '{print $1}'

如果你不想要人类可读的格式,请从命令中删除“-hs”

关于linux - 使用 du 估计列表文件中文件的空间量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38501447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com