Я хотел бы рассчитать размер файла дерева каталогов, но я также хочу игнорировать все PDF-файлы и изображения. По сути, я пытаюсь выяснить, каков размер текстовых файлов.
Как я могу это сделать?
Примечание: это в среде Linux, в частности RedHat
Я хотел бы рассчитать размер файла дерева каталогов, но я также хочу игнорировать все PDF-файлы и изображения. По сути, я пытаюсь выяснить, каков размер текстовых файлов.
Как я могу это сделать?
Примечание: это в среде Linux, в частности RedHat
Рассмотрим структуру каталогов следующим образом:
$ ls -sR1
.:
total 32
4 1/
4 2/
4 m
4 n
4 o
4 x.pdf
4 y.pdf
4 z.pdf
./1:
total 0
./2:
total 8
4 a/
4 p
./2/a:
total 4
4 q
Затем, чтобы получить список всех файлов, которые не соответствуют *.pdf , мы можем сделать
$ find . -type f \( ! -name '*.pdf' \)
чье расширение тоже не совпадает, скажем, *.jpg довольно очевидно. Затем используйте du следующим образом:
$ du -c $(find . -type f \( ! -name '*.pdf' \))
4 ./o
4 ./m
4 ./n
4 ./2/a/q
4 ./2/p
20 total
где вы можете добавить -b чтобы получить видимый размер в байтах, а не использование диска. -c выдает общий итог.
Ограничения этого подхода:
find + du)find в du через командную строку и, таким образом, ограничен максимально допустимым для этого размером.Вы можете преодолеть 1., используя find для выполнения du для каждого отдельного файла, а затем используйте awk или что-то подобное, чтобы сложить все это. 2. может быть решена путем более интригующих проверок в find , возможно, на основе вывода file для каждого файла и сопоставления его с положительным или отрицательным списком.