Скрипт на nautilus для запаковки всего и вся

В целом мне нравится стандартный менеджер архивов в ubuntu и mint. Не страшно, что он по умолчанию не понимает rar (легко исправляется командой sudo apt-get install unrar), в целом он вполне конформный. Однако в последнее время я вынужден заливать exe файлы на один из ресурсов, где exe файлы не принимаются (довольно частое и нормальное явление). И я был искренне удивлён, что нельзя запаковать exe файл. Менеджер архивов не видит смысла запаковывать другие архивы (а exe, это и есть архив). Что же, напишем свой небольшой скрипт, которому будет всё равно, что запаковывать.

Скрипт будет для nautilus, т.е. стандартного файлового менеджера в gnome. С KDE особо дело не имел, но думаю он ничем не будет отличаться, кроме места нахождения.

Для начала создаём файл, где будет лежать код скрипта. Имя файла будет соответствовать имени пункта в меню

gedit  ~/.gnome2/nautilus-scripts/Запаковать

Откроется текстовый редактор gedit. Вставляем в него наш код:

#!/bin/bash
n=`basename "$*"`
na=$(zenity --text "Введите имя архива(*.zip, *.tar, *.7z)" --entry)
if [[ $na == *zip ]]; then
zip -r $na $n
elif [[ $na == *tar ]]; then
tar cpvf $na $n
elif [[ $na == *7z ]]; then
7z a $na $n
else
zenity --error --text "Введённое вами расширение архива не поддерживается. В конце имени архива должно быть написано zip, tar или 7z"
fi

Как видно из кода, скрипт поддерживает 3 типа архивов: zip, tar и 7z. Если захотите добавить новые, то думаю сможете добавить свои команды по образцу.

После чего сохраняем файл и делаем его исполняемым:

chmod +x ~/.gnome2/nautilus-scripts/Запаковать

Готово. Теперь достаточно выделить любой файл (или файлы и папки… но это можно было и раньше) и нажать правую кнопку, выбрать сценарии и Запаковать.

Изначально файл с exe расширением и пункта запаковать нету

Нас спросят имя будущего архива. Вводим любое имя без пробелов с окончанием zip,  tar или 7z. Если нужны пробелы… можете посмотреть в сторону этого скрипта. В нём я как-то решил эту проблему, но там это действительно было нужно… а в таких случаях можно обойтись без пробелов (Ибо пробелы зло и не надо их использовать в именах и адресах).

Нажимаем ОК — готово!

Поделись статьёй с друзьями

Или просто поиграйся с кнопочками

Добавить комментарий