Я являюсь довольно новым при использовании терминала и задавался вопросом, как поместить папку, полную .zip файлов в sub папки, названные тем же как .zip файл, из которого это было извлечено.
До сих пор я изобразил это unzip '*.zip' -d
извлечет все .zip файлы в единственный каталог, но я не уверен, как указать/создать на папки назначения для -d
для каждого .zip файла.
С другой стороны, Инструмент Конфигурации Действия Наутилуса походит, если смогли подражать 7zip команда Extract To, но это кажется немного более пугающим.
Используя Nautilus Action Config Tool
опция и вызов моего script zippy.sh
:
#!/bin/bash
# Unzipping and organizing files from nautilus
m=0 # counter
while [ -n "$1" ] && [ -f "$1" ]
do
if [[ "$1" =~ \.zip$ ]]
then
dir="$1"
dir=${dir%.*}
unzip "$1" -d "$dir"
m=$(($m + 1))
shift
fi
done
zenity --info --text="Operations finished and "$m" zip files unzipped"
exit 0
сценарий Места здесь:
~/.local/share/nautilus/scripts/
Делают это исполняемым файлом с chmod +x ~/.local/share/nautilus/scripts/zippy.sh
Объясненный:
-n
и -f
номер документа проверки не является нулем и является файлом соответственно
=~ \.zip$
, удостоверяются, что это - zip-файл
${dir%.*}
, убегает zip
часть имени файла
m=$(($m + 1))
количество, на скольких работаются zip-файлы.
shift
просматривают файлы
zenity
, отображают окно сообщения для указания на операционное заключение
Я отредактировал сценарий, который я нашел для имени файла к имени папки для извлечения в созданную папку.
Пересмотренный: В Вашем каталоге создают файл с:
#!/bin/bash
find . -type f ! -name "*exto*" | while read file;
do
f=$(basename "$file")
f1=${f%.zip}
mkdir "$f1"
unzip "$f" -d "$f1"
done
В терминале:
chmod +x exto
./exto
Вы могли также просто загрузить 7Zip версия для Linux. https://sourceforge.net/projects/p7zip/files / Это называют p7zip
https://www.ibm.com/developerworks/community/blogs/6e6f6d1b-95c3-46df-8a26-b7efd8ee4b57/entry/how_to_use_7zip_on_linux_command_line144? lang=en Это также предоставляет очень подробное руководство установки и использования