Как извлечь конкретную папку из архива в заданный каталог?
Я пытался с помощью
unzip "/path/to/archive.zip" "in/archive/folder/" -d "/path/to/unzip/to"
но это только создает папку на пути, к которому я хочу ее разархивировать, и больше ничего не делает.
"\\"
будет использоваться (иначе вы всегда должны помнить, какие символы являются специальными escape-символами). Так что разница в цитировании, если автор имел в виду «цитирование глобуса» (не нужно). В любом случае, такая обратная косая черта - это опечатка.Пытаться:
источник
caution: filename not matched: foldername/\*
когда я запускаю,unzip $repozip "$2-master/\*" -d /srv/www/magento/
где$2
находится имя папки в zip, я хочу вытащить все файлы и папки из"path/*"
.mv
потом, чтобы получить файлы там, где они мне нужны.-j
для этого.-j
удаляет всю информацию о пути, и все файлы попадают в целевую папку. Есть ли способ удалить только общую часть пути? Сродни молнии-r
.Существующие два ответа являются правильными, но немного сложнее указать целевой каталог, который следует уточнить.
Скажем,
/target/root/
является целевым каталогом для исходного действия распаковки, например:Затем нам нужно использовать то же самое,
/target/root/
что и целевой dir, даже если мы хотим извлечь только конкретный подкаталог, как работает unzip:В конце концов, правило на самом деле простое, используйте тот же целевой корневой каталог для этой
-d
опции .Кстати,
-qq
опция для распаковки должна быть очень тихой, не стесняйтесь удалить ее.источник