1

Я хотел бы распаковать отдельные файлы. Эти файлы имеют расширение .txt. Эти файлы также находятся в нескольких заархивированных файлах. Вот команда, которую я пытаюсь использовать.

unzip -jn /path/to/zipped/files/zipArchiveFile2011\*.zip /path/to/specific/individual/files/myfiles2011*.txt -d /path/to/home/directory/for/extract/

Насколько я понимаю, опция -j исключает каталоги и будет извлекать только текстовые файлы. Опция -n не будет перезаписывать файл, если он уже был извлечен. Я также узнал, что косая черта в /path/to/zipped/files/zipArchiveFile2011\*.zip необходима для экранирования символа подстановки (*).

Вот пример сообщений об ошибках, с которыми я сталкиваюсь:

Archive: /path/to/zipped/files/zipArchiveFile20110808.zip caution: filename not matched: /path/to/specific/individual/files/myfiles20110807.txt caution: filename not matched: /path/to/specific/individual/files/myfiles20110808.txt Archive: /path/to/zipped/files/zipArchiveFile20110809.zip caution: filename not matched: /path/to/specific/individual/files/myfiles20110810.txt caution: filename not matched: /path/to/specific/individual/files/myfiles20110809.txt

Я чувствую, что мне не хватает чего-то очень простого. Я пытался использовать одинарные кавычки (') и двойные кавычки (") вокруг путей к каталогам. Но не повезло.

3 ответа3

2

Для команды unzip с выражением диапазона в имени файла нам нужно экранировать как формат диапазона, так и подстановочный знак в имени файла назначения, например, чтобы разархивировать файлы с расширением txt в файле order0710.zip, ... order0715.zip в папку txt_pool, мы должны выполнить команду как это:

unzip -jn order071\[0-5].zip \*.txt -d txt_pool
1

Я думаю, что вы также должны указать * в списке файлов. Команда должна выглядеть примерно так:

unzip -jn /path/to/zipped/files/zipArchiveFile2011\*.zip
      /path/to/specific/individual/files/myfiles2011\*.txt 
      -d /path/to/home/directory/for/extract/

Если не заключить в кавычки, вторая * bash расширяет ее и размещает имена файлов. Вы можете проверить значение, которое передается команде, используя echo:

echo /path/to/specific/individual/files/myfiles2011*.txt
0

Вы пробовали WinRar?

Просто создайте командный файл с именем unrar.bat

c: md \unrar cd \unrar "C: \Program Files (x86)\WinRAR \unrar.exe" e% 1 запуск c: \unrar

Теперь щелкните правой кнопкой мыши любой ZIP-файл и выберите Открыть с помощью ... Просмотрите этот unrar.bat

Я надеюсь, что вы видите идею.

PS: Вы можете создать снимок на панели задач / быстрый запуск, а затем перетащить файлы поверх значка файла .bat вместо правой кнопки мыши ...

Если вам не нужны каталоги, выполните поиск в конце с маской * .txt. Все текстовые файлы будут перечислены, теперь вы можете легко выбрать / вырезать / вставить их.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .