Не удается запустить домен после добавления общей файловой системы dir Fedora 27

Можно использовать распаковать , например:

unzip -j file[.zip] [file] [-x xfile]

, где -j означает мусорные пути, file[... zip] - имя вашего архива, [файл] - член архива, подлежащего обработке и [-x xfile] - список членов архива, подлежащих исключению из обработки. Все эти опции подробно описаны в man-странице.
Таким образом, в вашем случае, запустив, например:

unzip -j ex1234.zip '*/*.csv' -x '*/*/*'

распаковывает в текущей директории все файлы, соответствующие *.csv из уровня глубины 2 в архиве ex1234.zip (исключая членов архива из уровня глубины 3 и ниже, так как '*/*/*' означает пути, которые совпадают, как минимум, с двумя /).

Теперь, чтобы обработать все архивы в текущей директории, можно запустить:

for zipfile in *.zip; do unzip -j "$zipfile" '*/*.csv' -x '*/*/*'; done

, который извлекает файл .csv из каждого архива в текущей директории (для этого нужен -j).
В вашем конкретном случае на глубине 1-го уровня нет .csv, так что вы также можете запустить:

for zipfile in *.zip; do unzip -j "$zipfile" '*.csv' -x '*/*/*'; done

, что должно дать тот же результат.
Чтобы просмотреть, какие файлы будут извлечены (пути к архиву) без фактического извлечения, замените -j на -qql:

for zipfile in *.zip; do unzip -qql "$zipfile" '*/*.csv' -x '*/*/*'; done

В качестве примечания, опция -j может быть опущена -iff на . csv файлы для извлечения находились на уровне глубины 1 (т.е. без родительского dir); в этом случае вы могли просто запустить:

for zipfile in *.zip; do unzip "$zipfile" '*.csv' -x '*/*'; done
1
20.12.2017, 22:03
0 ответов

Теги

Похожие вопросы