2010-08-17 13 views
5

У меня есть папка, содержащая файлы .tcb и .tch. Мне нужно знать, что размер всех .tcb файлов, соответственно, всех файлов .tch. я сделал так:Рассчитать общее потребление пространства для определенных файлов в терминале unix

1) Я создал временную папку, а затем:

mv *tch temp 

2), а затем:

du -sk temp 

Я нашел команду в Интернете и википедия говорит, что это : «du (сокращенно от использования диска) является стандартной программой Unix, используемой для оценки использования файлового пространства». Я думаю, причина в том, что он говорит, что оценка - это то, что если есть ссылки, тогда размер ссылки будет показан вместо связанного файла.

Но если я

ls -l 

в папке временных (которая содержит все * .tch файлы), а затем суммировать размеры, которые отображаются в терминале, у меня есть еще один размер файла. Почему это так?

Ну в общем, то, что мне нужно, это команда которая показывает мне реального файл размера * всех .tch файлов в папке, которая может содержать также других тип файлов.

Я надеюсь, что кто-нибудь может мне помочь. Большое спасибо!

ответ

10

Вы можете использовать опцию -L для du, если вы хотите следовать символические ссылки (то есть, рассчитать размер целевой линии, а не самой ссылки). Вы также можете использовать опцию -c для отображения итогового итога в конце.

Вооруженный этими вариантами, попробуйте du -skLc *.tch.

Для получения дополнительной информации о du, см. this manpage.

+1

Обратите внимание, что это может не дать вам результат, который вы ожидаете, если папка содержит ссылку на файл .tch в том же каталоге. Этот файл будет считаться дважды: один раз для «фактического» файла и один раз для связанной версии. – bta

+0

папка не содержит ссылок, поэтому это решение, похоже, делает то, что я хочу. thx bta – mkn

1

Посмотрите на конкретную страницу руководства для вашей версии du, поскольку они значительно различаются по степени их учета.

«Примерный» может быть:

  1. Блоки используются или Байты могут сообщаться с блоками чрезмерно указанием размеров файлов, которые не являются точным кратным размером блока, но более точно представляет «пространство, используемое, что Я не могу использовать для других вещей »
  2. Файлы Unix могут иметь« дыры », созданные путем поиска длинного пути и записи. ОС фактически не выделяет пространство для пропущенных отверстий.
  3. Символические ссылки могут быть или не быть разыменованы в реальном файле, на который они указывают.

Если вы просто хотите ByteCount использовать wc -c *.tcb