Найти файлы со строкой в ​​имени файла и распаковать - PullRequest
0 голосов
/ 11 октября 2019

У меня есть папка, полная для архивирования файлов. Используя терминал linux, мне нужно найти файлы с определенной строкой в ​​имени zip-файла и распаковать их только в другую папку. Я попробовал следующее, но безуспешно.

find /some_folder/ -name "*[temperature]*.zip" | parallel unzip '/some_folder/unzippedfiles/'

Во-первых, шаблон не совпадает, а во-вторых, я не уверен, можно ли перенаправить вывод в другую папку. Может кто-нибудь предложить исправление, пожалуйста? Заранее спасибо

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Чтобы найти шаблон в именах файлов и распаковать в новую папку

find /some_folder/ -name "*temperature*.zip" |
    parallel "mkdir -p {//}/unzippedfiles && cd {//}/unzippedfiles && unzip -q {}"

Чтобы игнорировать файлы с именами файлов шаблонов и распаковать в новую папку

find /some_folder/ ! -name "*temperature*.zip" |
    parallel "mkdir -p {//}/unzippedfiles && cd {//}/unzippedfiles && unzip -q {}"

mkdir -p --> Creates a folder if it does not exist
-q --> quiet mode 
{//} --> mydir/mysubdir (In this case, it is /some_folder)
1 голос
/ 11 октября 2019

/some_folder/ должен быть абсолютным путем:

find /some_folder/ -name "*temperature*.zip" |
  parallel 'mkdir -p /some_folder/unzippedfiles/; cd /some_folder/unzippedfiles/ && unzip'
...