Я получил огромный файл .tar.gz от клиента, который содержит около 800 МБ файлов изображений (в несжатом виде). FTP-сервер нашей хостинговой компании работает очень медленно, поэтому извлекать все файлы локально и отправлять их через FTP нецелесообразно. Я смог перенести файл .tar.gz на наш хостинг-сайт, но когда я захожу в свой каталог по ssh и пытаюсь использовать unzip, он выдает мне эту ошибку:
[esthers@clients locations]$ unzip community_images.tar.gz
Archive: community_images.tar.gz
End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note: community_images.tar.gz may be a plain executable, not an archive
unzip: cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.
Какую команду мне нужно использовать для извлечения всех файлов в файле .tar.gz?
tar -xf
предложение будет сделать большой дополнительный ответ.man tar
; ищи-C
вариант. Или, может быть, проверить другой ответ 😉Если вы хотите, чтобы файлы были извлечены в определенное место, вы можете добавить. Сначала убедитесь, что вы создали каталог, в этом случае: ~ / Pictures / Community
-C /destination/path/
Пример:
Вы можете легко запомнить, если вы считаете , говоря деготь по электронной X тракт F Ile
Примечание: помните, что вы можете искать внутри справочных страниц с
?
+ термином для поиска, а затемn
и,N
чтобы перейти к следующему или предыдущему экземпляру искомого термина.источник
ps
).--directory="/home/emmys/Pictures/Community/"
(который, я думаю, легче запомнить, чем-C
).В какой-то момент
tar
был обновлен до автоматической декомпрессии. Все, что вам нужно сейчас, это:Это же объяснение применимо:
f
: Это должно быть последним флагом команды, и деготь е Ила должен быть сразу же после. Он сообщает tar имя и путь к сжатому файлу.x
: e x tract файлы.Обратите внимание на отсутствие дефиса для флагов команды. Это связано с тем, что большинство версий tar допускают опции стиля gnu и bsd (упрощенно, gnu требует дефис, bsd - нет).
источник
Запоминание всех флагов
tar
может быть утомительным. Обязательный XKCD:Поэтому я сделал свой собственный маленький скрипт на Python для этого. Быстро, грязно,
cp
похоже на использование:Используйте это так:
Смотрите также похожий скрипт для распаковки zip-архивов .
источник
-caf
для создания на основе имени файла и-xf
для извлечения (AFAIK работает с каждым типом tar).tar xf <file>
?Быстрый ответ:
[ ПРИМЕЧАНИЕ ]:
-v
Подробно обработан список файлов.-z
Фильтруйте архив через gzip.-f
Используйте архивный файл или устройство АРХИВ.-x
Извлечь файлы из архива.-j
bzip2.-xf
archive.tar # Извлечь все файлы изarchive.tar
.источник
Если вы не можете извлечь
.tar.gz
файл, используяПопробуйте извлечь с помощью
источник
Вы можете сделать это тоже на первом этапе:
Тогда у вас есть файл: community_images.tar
Второй шаг будет:
И файл * .tar будет извлечен.
источник
tar xvf file.tar.gz
Любая удаленно современная версия tar должна автоматически определить, что архив распакован, и добавить «z» для вас.
источник