Простая работа с архивами в Thunar (xfce4)

Автор Leo, 09 июня 2015, 19:33:34

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Leo

Архиватор Squeeze xarchiver, интегрирующийся с Thunar'ом в xfce4 через плагин меня не очень устраивает, поэтому думал как бы решить проблему с помощью консольных архиваторов. Уже было соображал что достаточно пары скриптов чтобы перекрыть мои потребности в работе с архивами, но тут меня посетила вполне резонная мысль - с большой долей вероятности это кто-то уже сделал - нужно только поискать. Поискал и нашёл. Данный пост будет являться адаптацией указнанной публикации, с картинками, русским текстом и подпиленными скриптами. Усилия будут направлены на то чтобы организовать более-менее приемлемую работу с архивами форматов tar, tar.xz, tar.gz, tar.bz2, 7z, rar, zip из родного файлового менеджера xfce4 - Thunar'а. Для этого нам потребуются консольные архиваторы работающие с данными форматами архивов, а также пара вспомогательных утилит atool - для управления архивами разных форматов и zenity - для вывода диалоговых окон. Поехали!

Для начала установим всё что нам нужно:

sudo apt-get install unrar rar p7zip atool zenity


Остальные утилиты для работы с tar-архивами должны быть уже установлены.

Теперь создадим в домашней директории пользователя папку scripts для размещения bash-скриптов и поместим в неё два файла: compressor.sh и archive-repack.sh (можно тупо скачать архивчик и распаковать его у себя)

Содержимое compressor.sh


#! /bin/sh                                                     

ARCHIVE=`zenity --title="Имя архива" --entry --entry
-text="$(echo $1 | cut -f1 -d.)" --text="Введите ТОЛЬКО имя архива:"`

if [ $? == 1 ]; then
  exit
fi

TYPE=$(zenity --list --column="Выберите формат" --title="Создание архива" --width=200 --height=250 --text="Выберите формат архива" tar.gz tar.bz2 tar.xz zip tar 7z rar)

if [ $? == 1 ]; then
  exit
fi

atool -a --format $TYPE "`echo ./$ARCHIVE.$TYPE`" "$@"

exit 0

[свернуть]

Содержимое archive-repack.sh


#! /bin/sh                                                     

n=1

TYPE=$(zenity --list --column="Выберите формат" --title="Перепаковка архива" --width=200 --height=250 --text="Выберите результирующий формат архива" tar.gz tar.bz2 tar.xz zip tar 7z rar)

if [ $? == 1 ]; then
  exit
fi

for file in "$@"; do
  if [ ! -e "$file" ]; then
    continue
  fi

name="$(echo $file | cut -f1 -d.)"

atool -r --format $TYPE "$file" "`echo $name.$TYPE`"

echo $(($n * 100 / $#))

echo "# Обрабатывается файл: $file"

let "n = n+1"

done | (zenity  --progress --title "Перепаковка..." --percentage=0 --auto-close --auto-kill)

exit 0

[свернуть]

По правому клику мыши в Thunar'е откроем свойства файла и разрешим выполнение скриптов:



Теперь идём в меню Thunar'а и добавляем "особые действия": Правка->Особые действия...

Жмём плюс для добавления особого действия.

Первое особое действие будет выводить окно со списком файлов, находящихся в архиве.
Для этого нам потребуется заполнить всего 4 поля и отметить все флажки на второй вкладке.
Имя: Посмотреть содержимое архива
Описание: Список файлов находящихся в архиве
Команда: als -l -e %N | zenity --text-info --width=800 --height=300 --title="Содержимое архива"
Шаблон имени файла: *.tar.gz;*.tar.bz2;*.7z;*.rar;*.zip;*.tar;*.tar.xz

Можно также выбрать значок чтобы при отображении в контекстном меню Thunar'a оно лучше определялось визуально и не было скучным.





Второе действие пусть будет выполнять распаковку архивов, для него параметры будут следующие:
Имя: Распаковать архив
Описание: Распаковать архивы в одноимённые папки
Команда: aunpack -xe %N
Шаблон имени файла: *.tar.gz;*.tar.bz2;*.7z;*.rar;*.zip;*.tar;*.tar.xz

Третье действие обеспечит создание архивов, оно будет использовать bash-скрипт compressor.sh, для него параметры будут следующие:
Имя: Создать архив
Описание: Создать архив из группы выделенных файлов или директории
Команда: $HOME/scripts/compressor.sh %N
Шаблон имени файла: *

И последнее, четвёртое действие позволит нам преобразовывать формат архивов, например из tar.xz в zip, что бывает удобно. Оно будет использовать bash-скрипт archive-repack.sh.
Имя: Перепаковать архив
Описание: Перепаковать выделенные архивы в другой формат
Команда: $HOME/scripts/archive-repack.sh %N
Шаблон имени файла: *.tar.gz;*.tar.bz2;*.7z;*.rar;*.zip;*.tar;*.tar.xz

Вот и всё. Теперь при работе с архивами в Thunar у вас в контекстном меню должны появляться соответствующие пункты, обеспечивающие минимально необходимый функционал.



Конечно же с запароленными архивами или разбитыми на части скорее всего придётся повозиться, но это встречается довольно редко.
Не смотря на то, что статья была написана в апреле 2013 года, хотел сказать спасибо авторам - thank you, good work!

В комменты пишите вашу критику, замечания и новые вкусные плюшки из "особых действий"! ;D

P.S. Для вашего удобства позволил себе прицепить к посту архив со скриптами, весом 732 байта.

[вложение удалено администратором]

gromozeka.deb

#1
Полоска прогресса не работает.

"--percentage=0" заменить на "--pulsate" проще, чем проценты реальные показывать читая из stdout, которого у некоторых, у 7z к примеру, нет.

Если кто знает, как вывести реальные проценты при распаковке именно у 7z, буду премного благодарен.

ek-nfn

Цитата: Leo от 09 июня 2015, 19:33:34Архиватор  xarchiver, интегрирующийся с Thunar'ом в xfce4 через плагин меня не очень устраивает

xarchiver заменяем на file-roller и даже, кажись, плагин не надо менять.
Debian 12  -> Devuan 5 xfce -> MX Linux 23

gromozeka.deb

Цитата: ek-nfn от 12 декабря 2018, 14:21:23
xarchiver заменяем на file-roller и даже, кажись, плагин не надо менять.
Даже ещё в 15-ом году это было проблематично из-за гномовской кучи зависимостей file-roller.

ek-nfn

#4
Цитата: gromozeka.deb от 13 декабря 2018, 14:23:45Даже ещё в 15-ом году это было проблематично из-за гномовской кучи зависимостей file-roller.
c 15 года у меня никаких проблем ни в форках ubuntu с xfce, ни в debiane с xfce. Всегда сношу дефолтное и ставлю file-roller c плагином под thunar, 7zip-full и rar.
Debian 12  -> Devuan 5 xfce -> MX Linux 23

gromozeka.deb

Цитата: ek-nfn от 13 декабря 2018, 19:21:35
Цитата: gromozeka.deb от 13 декабря 2018, 14:23:45Даже ещё в 15-ом году это было проблематично из-за гномовской кучи зависимостей file-roller.
c 15 года у меня никаких проблем ни в форках ubuntu с xfce, ни в debiane с xfce. Всегда сношу дефолтное и ставлю file-roller c плагином под thunar, 7zip-full и rar.

Значит я ошибся на лет 5-10, неважно, главное, что тут показаны примеры использования возможностей Thunar без наличия того же File Roller.

laohu

Цитата: Leo от 09 июня 2015, 19:33:34

Как Вам удалось выставить такие неразмазанные шрифты?