як вказати розпакувати цільовий каталог


21

Чи є в zip команді linux така можливість, щоб я міг жорстко кодувати цільовий каталог, який він розпаковує. Наприклад, я хотів би зафіксувати файли ./mydir у myzipfile.zip, але я хочу, щоб команда unzip створила специфічний каталог "projx" і розширила до нього файли, що знаходились під ./mydir.

zip -r myzipfile.zip mydir (-option to expand into 'projx' when unzipped? )

Відповіді:


18

Такого варіанту немає, принаймні не для Info-ZIP. Ви повинні створити projx каталогів самостійно, перемістити / скопіювати файли у нього та передати його zip.

Якщо каталог вже існує, просто перейдіть -dдо параметра, unzipщоб вказати цільовий каталог для вилучення.


4

Для цього є інший спосіб. Ви можете вирівняти весь вміст zip-файлу, використовуючи наступний метод. Цільовий каталог - " projx " і виконайте наступну команду.

cd /projx && unzip -j /path/to/myzipfile.zip

Варіант -j називається "небажаними шляхами" і просто скидає кожен файл у поточний каталог замість вилучення будь-якої структури каталогів.


0

Я не знаю про конкретний варіант командного рядка, але ви можете використовувати наступні команди, щоб досягти вашої мети:

ln -s mydir projx
zip -r myzipfile.zip projx
rm projx

Перша команда створює символічне посилання, щоб ви могли отримати доступ до файлів mydirтакож через projx. Потім за допомогою Info-ZIP(протестовано версії 2.31) символічне посилання скидається (це за замовчуванням, якщо не вказано -y), а файли зберігаються рекурсивно:

adding: projx/ (stored 0%)
adding: projx/foo.1 (deflated 23%)
adding: projx/bar.2 (deflated 73%)
...

Розумієте, ім'я папки також зберігається у файлі - тому після вилучення projxстворюється каталог .

Однак я не можу думати про можливість зберігання абсолютних шляхів, але це все одно погана ідея.


Абсолютний шлях працює лише на MacOS, вказавши параметр -jj. В інших операційних системах підтримується лише параметр -j-jjінтерпретується як -j), який видаляє будь-який провідний шлях і, таким чином, веде до протилежного (дуже розумний дизайн ...).
scai
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.