Как я могу извлечь архив с именем архива в качестве каталога по пути?

#bash #shell #zsh #unzip

#bash #оболочка #zsh #распаковать

Вопрос:

Я нашел эту команду. for f in *.zip; do unzip -d "${f%*.zip}" "$f"; done

Я хочу что-то похожее на это, но я хочу извлечь свои zip-файлы из моей ~/Downloads папки в ~/Documents .

Итак.

 - Downloads
    - zip1.zip
    - zip2.zip
    - zip3.zip

- Documents
    - zip1/data.txt
    - zip2/data.txt
    - zip3/data.txt
 

Пожалуйста, помогите!

Ответ №1:

Просто префикс пути, который вы указываете во флаге -d, к каталогу Documents:

 for f in *.zip; do unzip -d ~/Documents/"${f%*.zip}" "$f"; done
 

Обратите внимание, что сценарий все равно необходимо выполнить внутри вашего каталога загрузок.

Комментарии:

1. Да, спасибо, но как мне получить папку, из которой ее извлечь? Я не просто хочу cd попасть в папку и использовать эту команду. Я хочу сделать это из домашней папки.

2. Сделайте for f in ~/Downloads; ... , и вы сможете сделать это из любого каталога.