Ответы:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
отлично работает на EL 6
"\\"
будет использоваться (иначе вы всегда должны помнить, какие символы являются специальными escape-символами). Так что разница в цитировании, если автор имел в виду «цитирование глобуса» (не нужно). В любом случае, такая обратная косая черта - это опечатка.
Пытаться:
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
находится имя папки в zip, я хочу вытащить все файлы и папки из
"path/*"
.
mv
потом, чтобы получить файлы там, где они мне нужны.
-j
для этого.
-j
удаляет всю информацию о пути, и все файлы попадают в целевую папку. Есть ли способ удалить только общую часть пути? Сродни молнии -r
.
Существующие два ответа являются правильными, но немного сложнее указать целевой каталог, который следует уточнить.
Скажем, /target/root/
является целевым каталогом для исходного действия распаковки, например:
unzip -qq src.zip -d "/target/root/"
Затем нам нужно использовать то же самое, /target/root/
что и целевой dir, даже если мы хотим извлечь только конкретный подкаталог, как работает unzip:
unzip -qq src.zip "sub/dir/*" "/target/root/"
В конце концов, правило на самом деле простое, используйте тот же целевой корневой каталог для этой -d
опции .
Кстати, -qq
опция для распаковки должна быть очень тихой, не стесняйтесь удалить ее.