Як я можу створювати та витягувати архіви zip з командного рядка?
Як я можу створювати та витягувати архіви zip з командного рядка?
Відповіді:
Як правило, один використовується tarдля створення нестисненого архіву gzipабо bzip2для стискання цього архіву або. Відповідні gunzipта bunzip2команди можуть бути використані для розпакування згаданого архіву, або ви можете просто використовувати прапори tarкоманди, щоб виконати розпакування.
Якщо ви конкретно посилаєтесь на формат файлу Zip , ви можете просто скористатися командами zipта unzip.
Для стиснення:
zip squash.zip file1 file2 file3
або поштовий каталог
zip -r squash.zip dir1
Щоб відключити:
unzip squash.zip
це розпаковує його у вашому поточному робочому каталозі.
zip -r9 archive.zip files...синтаксис (-r = рекурсивний -9 = максимум стиснення).
zipможна створити безліч різних ароматів архівів .ZIP, а також використовувати безліч різних компресорів. З іншого боку, існує ряд інших інструментів стиснення, названих аналогічно: 7-Zip, gzip, bzip2, rzip тощо, які не є взаємозамінними.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zipдля витягування в окрему нову директорію ( myfolder), а не додайте всі файли безпосередньо до поточного каталогу, що може бути прикро, якщо zip-файл містить багато файлів і каталогів на своєму верхньому рівні. Це імітує, як працює більшість інструментів розпакування інтерфейсу.
Існує справді велика кількість різних способів стиснення та розпакування під похідними UNIX, тому я припускаю, що ви мали на увазі "zip" у загальному сенсі, а не у певному форматі файлу.
Ви можете копіювати файли (у стисненому форматі) за допомогою tarпрограми GNU :
tar -zcvf myfile.tgz .
який буде виконувати поточний каталог. .Якщо ви хочете щось інше, замініть іншими іменами файлів.
Щоб розпакувати цей файл, використовуйте:
tar -zxvf myfile.tgz
Це, звичайно, припускаючи, що у вас є tarможливість робити компресію, а також комбінувати файли в один.
Якщо ні, то ви можете просто використати, tar cvfа потім gzip(знову ж, якщо є) для стиснення, а gunzipза ним - tar xvf.
Для конкретної обробки файлів у форматі ZIP я рекомендую завантажити 7zipта використовувати їх - він розпізнає величезну кількість різноманітних форматів файлів, включаючи ZIP-формат.
tar jcvf file.tar.bz2...для стиснення у форматі bzip2 або tar Jcvf file.tar.xz ...для стиснення xz.
Якщо у вас не встановлені пакети zip та unzip, а у вас Java, ви можете jarскасувати розпакування:
jar -xf file.zip
Що ж, якщо мова йде про розповсюдження файлів для різних операційних систем, я рекомендую 7-zip .
Зазвичай в упаковці p7zipви отримаєте команду 7zта 7zaкоманду, за допомогою якої ви зможете створити власні 7z архіви.
7zaтакож можна розпакувати стандартні ( pkzip ) архіви zip (і створити їх також за допомогою -tzipперемикача).
Стиснення:
7za a archive.7z file1 file2 directory/
Декомпресія:
7za x archive.7z
Він також може створювати саморозпаковуються архіви за допомогою -sfxперемикача:
7za a -sfx archive.exe files1 file2 dir
Я рекомендую цей метод у випадку, якщо користувачі Windows не можуть відкрити архіви 7z (якщо ви хочете порадити інструмент для цього: PeaZip ).
Якщо ви хочете використовувати один і той же алгоритм стиснення з вашими табло, використовуйте -Jперемикач із tar:
tar cJf archive.tar.xz file1 file2 dir
xzє інструментом UNIX, який використовує LZMA2 для стиснення, але працює так gz, bz2і так далі працює. Він навіть працює як фільтр.
7z не створює архіви з повною інформацією про файлові системи в UNIX, тому вам потрібно буде використовувати tarперед тим, як використовувати 7z (але оскільки 7z зберігає іншу інформацію про tarфайл, я рекомендую використовувати xz, оскільки він призначений для нього):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool, це приємний маленький інструмент, який робить зручнішим використання багатьох різних компресорів. Прив’яжіть, що до aстворення архіву стає a arc.7z folder/або a arc.7z
unzip <filename>
і
zip -r archive.zip <filename> [filename]
Вам потрібно буде переконатися, що ці команди встановлені через менеджер пакунків. Це не складніше, ніж використовувати що-небудь інше в командному рядку. Це, звичайно, простіше, ніж створювати архіви з дьогтем.
BSD Tar також може це зробити
bsdtar acf bravo.zip alfa.jpg
Або:
bsdtar xf bravo.zip
tarмає перевагу в підтримці декількох додаткових форматів стиснення порівняно з GNU tarта іншими tar. Найбільша користь - це, мабуть, те, що він робить це під час використання tarсинтаксису -like . Ви можете , звичайно , використовувати 7z, unrar, unzipі т.д. з командного рядка, але вони використовують різний синтаксис.
Найбільш стандартна відповідь pax, яка рекомендується над cpioта tar.
На відміну від cpioPOSIX tar, але, як і GNU tar, paxздатний як архівувати файли, так і стискати архів. Така поведінка відрізняється від того zip, що стискає кожен файл перед тим, як помістити його в архів.
paxпідтримує архіви zip?
paxархіви!
Це стосується лише видобутку.
Для цього я почав використовувати dtrx.
Вся справа в тому, щоб зняти складність. Тож ви просто передаєте до нього будь-який архів, і він з'ясовує, що з ним потрібно робити. Zip, tar, gz ... Використання завжди однакове - dtrx archive.zip. Це задає кілька питань, і ви закінчили.
dtrxдоступний у більшості сховищ, тому ви можете apt| yumвстановити його.
Я часто намагаюся копіювати змінені файли в моєму робочому каталозі - або скопіювати всі змінені файли в інший робочий каталог пісочниці, або зберегти їх ненадовго, тому що я хочу скасувати деякі зміни.
У такому випадку я копіюю список модифікованих файлів у тимчасовий файл і використовую zipпараметр -@.
Скажімо, я змінив файли Foo.h, Bar.cc і TestBar.cc.
Скажімо, я створюю файл під назвою modi-files.txt, вміст якого:
Foo.h
Bar.cc
TestBar.cc
Я виконую наступну команду для копіювання цих файлів:
cat modified-files.txt | zip modified-files.zip -@