我正在寻找一种方法来列出目录中的所有文件,及其大小和行数。现在我正在用来stat -c \"%s %n\" /directory/*
获取文件名和大小,并且我知道我可以用来find /directory/ -type f -exec wc -l {} +
获取文件名和行数,但是有什么方法可以同时获取两者吗?
答案1
你快到了。
寻找目录-type f -exec wc -lc {} +
将获取文件名、行数、和C字符数。
严格来说,-c
(aka --bytes
) 被记录为计数字节,这可能就是您想要的。还有一个-m
(又名--chars
)选项用于计算“字符”。从选择的m
选项字母,我猜这算多字节字符;例如,Unicode 字符。还有一个-w
用于实际计算单词数的选项。
答案2
wc
可以提供字节数和行数:
find /directory/ -type f -exec wc -l -c {} +
使用find
也比通配符参数 ( stat ... directory/*
) 更可取,因为当目录中的文件太多而名称无法容纳在单个命令中时,后者将会失败。
答案3
我们可以简单地在目录中执行以下命令
wc -lc *
答案4
for i in 'find \directory-name\ -type f'
do
echo "Printing line count and size of $i"
cat $i | wc -l
du -sh $i
done
我想这会帮助你得到你想要的。