Я каждый день должен копировать файлы с моего компьютера на SD-карту, используя:
tar zxvf file.tar.gz -C /path_to_SD_card
Ubuntu выполняет эту команду мгновенно, но, как вы можете знать, он сохраняет копирование файлов в фоновом режиме. Поэтому мне нужно знать, когда процесс копирования завершится.
Есть ли способ знать это? что-то вроде бара прогресса?
заранее спасибо.
Нет прогресса стержня здесь: задержка не из процесса TAR , но из подсистемы ввода / вывода ядра не совсем не закончено.
TAR Читает этот архивный файл и записывает его на файловую систему на вашей SD-карте, но сначала переходит в буферы ядра. Сообщает ядро к TAR , что операция завершена, но она все равно продолжает промывать эти буферы в аппаратное обеспечение. Хуже того, большинство современных SD-карт / USB-палочки также имеют какой-то аппаратный буфер, который также необходимо промыть.
Если вы хотите сценарию, что вы можете отправить команду Sync
после вашей команды TAR
; Это будет хорошо и действительно блокировать все, пока все буферы не будут промыты (записаны на фактическое оборудование):
tar -xvf myarchive.tgz -C /media/sdcard
sync
(обратите внимание, что TAR достаточно уют с момента многих лет, чтобы обнаружить метод сжатия при распаковке, так что вы можете Опустить его для -x
и -T
)