2013-04-24 1 views
5

Проблема: У меня есть фоновый процесс, который в какой-то момент он собирает и создает большой файл tar. Этот tar получает несколько каталогов и файлы исключений. процесс может занять до нескольких минут, и я хочу сообщить в своем интерфейсном процессе (GUI) о ходе процесса тарирования (Это большая проблема для пользователя, который нажимает кнопку загрузки, и кажется, что ничего не происходит ...).tar pre-run для оценки ожидаемого размера или количества файлов

Я знаю, что могу использовать -v -R в файле tar и подсчитывать файлы и размер, но я ищу какой-то режим предварительного запуска tar/dry run, чтобы помочь мне оценить либо ожидаемое количество файлов, либо ожидаемый размер tar.

команда Я использую: tar -jcf 'FILE.tgz' 'exclude_files' 'include_dirs_and_files'

10x для всех, кто готов помочь.

ответ

11

Вы можете подключить вывод к инструменту wc, а не создавать файл.

С файла листинга (многословной):

[[email protected]]$ tar czvf - ./test-dir | wc -c 
./test-dir/ 
./test-dir/test.pdf 
./test-dir/test2.pdf 
2734080 

Без:

[[email protected]]$ tar czf - ./test-dir | wc -c 
2734080 
+1

Хорошо поймать. Для информации будущим читателям '-' сообщает tar для вывода на stdout (где он будет передан в wc). – dr01

1

Почему бы вам не запустить

DIRS=("./test-dir" "./other-dir-to-test") 
find ${DIRS[@]} -type f | wc -l 

заранее. Это получает все файлы (-type f) по одному в каждой строке и подсчитывает количество файлов. DIRS массив в Баш, так что вы можете хранить папки в переменной

Если вы хотите узнать размер всех сохраняемых файлов, вы можете использовать du

DIRS=("./test-dir" "./other-dir-to-test") 
du -c -d 0 ${DIRS[@]} | tail -1 | awk -F ' ' '{print $1}' 

Печатается использование диска с du, вычисляет общую сумму (-c flag), получает последнюю строку (пример 4378921 total) и использует только первую колонку с awk

+0

Я отмечаю, что tar и find не всегда соглашаются с количеством файлов; например, на моем Mac, tar, похоже, пропускает файлы, индексированные для предварительного просмотра Finder, но не находит. – wcochran

 Смежные вопросы

  • Нет связанных вопросов^_^