Відповіді:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
прекрасно працює на EL 6
"\\"
ви хочете буквальний зворотний проріз, він буде використаний (інакше вам завжди слід пам’ятати, які символи - це спеціальні втечі). Отже, різниця в цитуванні, якщо автор мав на увазі "цитування глобального символу" (непотрібне). Так чи інакше, такий похилий зворотній кут - це друкарська помилка.
Спробуйте:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
коли біжу, unzip $repozip "$2-master/\*" -d /srv/www/magento/
де $2
ім'я папки на блискавці, я хочу витягнути всі файли та папки з
"path/*"
.
mv
файли там, де вони мені потрібні.
-j
для цього.
-j
знімає всю інформацію про шлях, і всі файли переходять у цільову папку. Чи є спосіб видалити лише загальну частину шляху? Акін на блискавку -r
.
Два існуючих відповіді є обома правильними, але вказати цільовий каталог трохи складно, що слід краще уточнити.
Скажімо, /target/root/
це цільовий дір після оригінальної розпакування, наприклад:
unzip -qq src.zip -d "/target/root/"
Потім нам потрібно використовувати те саме /target/root/
, що і цільовий dir згодом, хоча ми хочемо витягнути лише певний підкаталог, як працює розпакування:
unzip -qq src.zip "sub/dir/*" "/target/root/"
Зрештою, правило насправді просте, використовуйте ту саму цільову кореневу директорію для -d
параметра .
До речі, -qq
опція полягає в тому, щоб розпакувати дійсно тихо, сміливо зніміть його.