Как извлечь конкретный файл без структуры папок с помощью команды 7za

450
user197909

У меня есть ZIP-файл (my.zip), состоящий из 4 файлов:

  • mydata_20050523-20130113.csv
  • mydata_20050523-20130113FileHeader.csv
  • Моя ассоциация данных - Code Values.pdf
  • Моя ассоциация данных - Readme.pdf

из которого мне нужен только один файл: "mydata_20050523-20130113.csv". Остальные 3 являются подтверждающими документами.

Я попытался использовать команду ниже:

7za x my.zip -x!*FileHeader.csv -x!*.pdf 

Раньше это работало ранее, поскольку файлы были извлечены напрямую без какой-либо структуры папок. Однако теперь при извлечении существует структура каталогов, под которой извлекаются файлы. Так что это не работает.

Кто-нибудь может мне помочь?

0
Разве `7za x` не извлекает с полными путями, а` 7za e` извлекает без путей? Попробуйте изменить это. Daniel Andersson 11 лет назад 1

1 ответ на вопрос

1
Stefan Seidel

Use the -xr0 switch with a wildcard:

7za x my.zip -xr0!\*/FileHeader.csv -xr0!\*.pdf 

Explanation: -x operates only on filenames by default and doesn't support recursion. -xr0 will operate on subdirectories (r) and allows the use of wildcards in these (0).

Немного больше объяснений поможет сделать этот ответ лучше. ChrisF 11 лет назад 0
Большое спасибо. Это работает, и моя проблема решена. user197909 11 лет назад 0
Пожалуйста, не забывайте «принимать» мой ответ, чтобы другим, у кого была такая же проблема, было легче его найти. Stefan Seidel 11 лет назад 0