ls命令输出当前目录中包含的所有内容。例如ls -la将输出类似这样的
drwxr-xr-x 3 user user 4096 dec 19 17:53 .
drwxr-xr-x 15 user user 4096 dec 19 17:39 ..
drwxrwxr-x 2 user user 4096 dec 19 17:53 tess (directory)
-rw-r--r-- 1 user user 178 dec 18 21:52 file (file)
-rw-r--r-- 1 user user 30 dec 18 21:47 text (file)
如果我想知道所有文件占用多少空间该怎么办。为此,我必须用ls -la | awk '{ sum+=$5 } END{print sum}'
从所有行中总计5美元。那么,如何只对文件大小求和而不留目录呢?
答案 0 :(得分:3)
您可以使用以下内容:
find . -maxdepth 1 -type f -printf '%s\n' | awk '{s+=$1} END {print s}'
find
命令选择当前目录中的所有文件并输出它们的大小。 awk
命令将整数相加并输出总数。
答案 1 :(得分:0)
不要。
https://unix.stackexchange.com/questions/128985/why-not-parse-ls-and-what-do-to-instead是我见过的关于SO引用最多的页面之一。
话虽如此,但作为进一步发展的暗示,ls -l | awk '/^-/{s+=$5} END {print s}'
可能会满足您的要求。