Да, однако, часть стандарта (но не обязательно) файлы системного значения по умолчанию не будет присутствовать. И необходимо будет удостовериться, что $PATH указывает на оболочку.
с GNU du
(т.е. на не встроенном Linux или Cygwin) вы можете использовать опцию - исключить
, чтобы исключить файлы, которые вы понимаете хочу совпадать.
du -s --exclude='*.html' /var/foo
Если вы хотите положительно совпадать *. PDF
Файлы, вам нужно использовать какой-либо другой метод для перечисления файлов, а DU
, по крайней мере, отобразится одна линия вывода на Аргумент, плюс Grand Total с вариантом -C
. Вы можете позвонить хвостом
, чтобы удалить все, кроме последней строки, или SED, чтобы удалить слово «всего». Чтобы перечислить файлы в том, что один каталог, используйте подстановочные знаки в оболочке.
du -sc /var/foo/*.pdf | tail -n1
du -sc /var/foo/*.pdf | sed -n '$s/\t.*//p'
Если вам нужно также проходить файлы в подкаталогах, используйте Найти
или использовать ** /
, если ваша оболочка поддерживает это. Для ** /
** / , в Bash, первый запуск ShopT -S Extlob
, и обратите внимание, что версии Bash до 4,2 будут проходить символические ссылки на каталоги; В ZSH это работает из коробки.
du -sc /var/foo/**/*.pdf | tail -n1
Дополнительное осложнение с помощью версии находки заключается в том, что если будет слишком много файлов, FACE
будет работать du
, более одного раза, чтобы поддержаться под пределами длины длины командной строки. С помощью метода WildCard вы получите ошибку, если это произойдет (превышено превышение длины строки командной строки). Следующий код предполагает, что у вас нет совпадающего имени файла, содержащего новую строку.
find /var/foo -name '*.pdf' -exec du -sc {} + |
awk '$2 == "total" {total += $1} END {print total}'
Вы можете позволить оболочке расширить файлы:
$ mkdir foo
$ echo "abc" > foo/1.pdf
$ echo "abcd" > foo/2.pdf
$ echo "abcd" > foo/3.html
$ du -ch foo/*.pdf
4,0K foo/1.pdf
4,0K foo/2.pdf
8,0K total
Однако, как вы видите, этот интерфейс вводит файлы примерно в 1000 раз больше, чем только что созданный. Лучше всего использовать опцию -b
:
$ du -cbh foo/*.pdf
4 foo/1.pdf
5 foo/2.pdf
9 total
Большие файлы все равно будут отображаться в удобочитаемом виде, например 173K
.