Автор Тема: Простая работа с архивами в Thunar (xfce4)  (Прочитано 9168 раз)

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

Оффлайн Leo

  • Старожил
  • ****
  • Topic Author
  • Сообщений: 843
  • Jabber: leo.bs@jabber.ru
Архиватор 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: ShowHide

#! /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: ShowHide

#! /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 байта.

[вложение удалено администратором]
« Последнее редактирование: 09 Июнь 2015, 21:00:12 от Leo »
 
Пользователи, которые поблагодарили этот пост: grey_wolf, oermolaev, ek-nfn, Arto4

Оффлайн gromozeka.deb

  • Пользователь
  • *
  • Сообщений: 42
Re: Простая работа с архивами в Thunar (xfce4)
« Ответ #1 : 11 Декабрь 2018, 21:10:53 »
Полоска прогресса не работает.

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

Если кто знает, как вывести реальные проценты при распаковке именно у 7z, буду премного благодарен.
« Последнее редактирование: 11 Декабрь 2018, 21:23:46 от gromozeka.deb »
 

Оффлайн ek-nfn

  • Devuan ASCII x64
  • Местный житель
  • ***
  • Сообщений: 224
Re: Простая работа с архивами в Thunar (xfce4)
« Ответ #2 : 12 Декабрь 2018, 14:21:23 »
Архиватор  xarchiver, интегрирующийся с Thunar'ом в xfce4 через плагин меня не очень устраивает

xarchiver заменяем на file-roller и даже, кажись, плагин не надо менять.
 


Оффлайн gromozeka.deb

  • Пользователь
  • *
  • Сообщений: 42
Re: Простая работа с архивами в Thunar (xfce4)
« Ответ #3 : 13 Декабрь 2018, 14:23:45 »
xarchiver заменяем на file-roller и даже, кажись, плагин не надо менять.
Даже ещё в 15-ом году это было проблематично из-за гномовской кучи зависимостей file-roller.
 

Оффлайн ek-nfn

  • Devuan ASCII x64
  • Местный житель
  • ***
  • Сообщений: 224
Re: Простая работа с архивами в Thunar (xfce4)
« Ответ #4 : 13 Декабрь 2018, 19:21:35 »
Даже ещё в 15-ом году это было проблематично из-за гномовской кучи зависимостей file-roller.
c 15 года у меня никаких проблем ни в форках ubuntu с xfce, ни в debiane с xfce. Всегда сношу дефолтное и ставлю file-roller c плагином под thunar, 7zip-full и rar.
« Последнее редактирование: 13 Декабрь 2018, 19:27:20 от ek-nfn »
 

Оффлайн gromozeka.deb

  • Пользователь
  • *
  • Сообщений: 42
Re: Простая работа с архивами в Thunar (xfce4)
« Ответ #5 : 17 Декабрь 2018, 20:00:20 »
Даже ещё в 15-ом году это было проблематично из-за гномовской кучи зависимостей file-roller.
c 15 года у меня никаких проблем ни в форках ubuntu с xfce, ни в debiane с xfce. Всегда сношу дефолтное и ставлю file-roller c плагином под thunar, 7zip-full и rar.

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

Оффлайн laohu

  • Пользователь
  • *
  • Сообщений: 17
Re: Простая работа с архивами в Thunar (xfce4)
« Ответ #6 : 29 Сентябрь 2019, 22:06:36 »

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

Теги: