Сайт | Скачать | Видео | Wiki

Автор Тема: Просмотр SFS, DEB, ZIP с помощью Midnight Commander  (Прочитано 11929 раз)

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

Оффлайн ilyuk

  • Пользователь
  • **
  • Сообщений: 42
  • Репутация: +19/-0
  • Автор темы
Просмотр SFS с помощью Midnight Commander:

Правим файл расширений mc (меню Команда --> Файл расширений --> Пользовательский)
Код
	
#sfs
regex/\.sfs$  # изменить
Open=MC_MNT %f  # изменить
View=%view{ascii} unsquashfs -ll %f
Заменяем на следующее
Код
# squashfs
regex/\.(sfs|tcz)$
Open=%cd %p#squashfs
View=%view{ascii} unsquashfs -ll %f
Добавляем в папку /usr/libexec/mc/extfs.d файл squashfs следующего содержания
Код
#! /bin/sh

UNSQUASH=/usr/sbin/unsquashfs

mcsquashfs_list () {

$UNSQUASH -ll "$1" | awk '
{if (NR == 1) { next }}
{if (NR == 2) { next }}
/^$/ { next }
/^d/ { next }
{
sub("/", " ", $2)
date = substr($4, 6, 2) "-" substr($4, 9, 2) "-" substr($4, 1, 4) " " $5
sub("squashfs-root", "",  $6)
name = $6
{if($7 != ""){name = name " " $7}}
{if($8 != ""){name = name " " $8}}
printf "%s 1 %s %s %s %s\n", $1, $2, $3, date, name
}'
}

mcsquashfs_copyout () {
TMP_DIR="/tmp/squashfs_temp"
[ ! -d $TMP_DIR ] && mkdir $TMP_DIR
$UNSQUASH -f -d $TMP_DIR $1 -e /$2 > /dev/null
mv $TMP_DIR/$2 $3
[ -d $TMP_DIR ] && rm -r $TMP_DIR
}

LC_ALL=C

cmd="$1"
shift

case "$cmd" in
  list)
    mcsquashfs_list "$@";
    exit 0;;
  copyout)
    mcsquashfs_copyout "$@";
    exit 0;;
esac
exit 1
Файлу squashfs установить атрибуты исполняемого
Перезапустить mc
« Последнее редактирование: 12 Февраль 2015, 13:44:19 от Zay »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re:Просмотр SFS с помощью Midnight Commander
« Ответ #1 : 20 Октябрь 2011, 12:13:24 »
Попробовал - работает в любом линуксе
Значительно удобнее
+
Для любого линукса :
Внимательнее с путями к unsquashfs , extfs
Для некоторых версий mc надо еще echo squashfs >> /etc/mc/extfs/extfs.ini

...В меню mc (F2) можно еще удобств прикрутить
...и вышел mc 4.8.0 http://www.linuxcenter.ru/news/2011/10/19/12790/
« Последнее редактирование: 20 Октябрь 2011, 12:18:49 от sfs »

Оффлайн andy-voit

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1250
  • Репутация: +60/-0
  • Расту!!!
XFCE forever!!!
Перешел на приставку 3vi. Теперь издеваюсь над ней! :)

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re:Просмотр SFS с помощью Midnight Commander
« Ответ #3 : 20 Октябрь 2011, 16:29:48 »
В 520 Ваш .pet установился тоже без проблем
Особых отличий беглым осмотром не нашел...
...Нашел - просмотр sfs у меня работает только в 4.7  http://www.mediafire.com/?zf9ns279ft1sbj8 :(
« Последнее редактирование: 30 Ноябрь 2011, 17:12:57 от sfs »

Оффлайн ilyuk

  • Пользователь
  • **
  • Сообщений: 42
  • Репутация: +19/-0
  • Автор темы
Просмотр DEB с помощью Midnight Commander
« Ответ #4 : 29 Октябрь 2011, 23:27:40 »
Просмотр DEB с помощью Midnight Commander:

Заменить содержимое файла /usr/libexec/mc/extfs.d/deb (или где он у Вас) на следующее
Код
#! /bin/sh

DPKG_DEB=dpkg-deb

mcdpkg_deb_list () {

$DPKG_DEB -c "$1" | awk '
{
sub("/", " ", $2)
date = substr($4, 6, 2) "-" substr($4, 9, 2) "-" substr($4, 1, 4) " " $5
name = $6
{if($7 != ""){name = name " " $7}}
{if($8 != ""){name = name " " $8}}
printf "%s 1 %s %s %s %s\n", $1, $2, $3, date, name
}'
}

mcdpkg_deb_copyout () {
TMP_DIR="/tmp/dpkg_deb_temp"
[ ! -d $TMP_DIR ] && mkdir $TMP_DIR
$DPKG_DEB -x $1 $TMP_DIR > /dev/null
mv $TMP_DIR/$2 $3
[ -d $TMP_DIR ] && rm -r $TMP_DIR
}

LC_ALL=C

cmd="$1"
shift

case "$cmd" in
  list)
    mcdpkg_deb_list "$@";
    exit 0;;
  copyout)
    mcdpkg_deb_copyout "$@";
    exit 0;;
esac
exit 1

PS Если администратор посчитает, что тема расположена не там, где полагается -- пускай переносит
« Последнее редактирование: 12 Февраль 2015, 13:42:13 от Zay »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re:Просмотр DEB с помощью Midnight Commander
« Ответ #5 : 08 Ноябрь 2011, 20:35:09 »
У меня не заработало. mc 4.8 (думаю - версия не важно)
Выдает ошибку
Эксперименты с заменой dpkg-deb не помогли
Родной deb - иногда открывает иногда нет. Закономерности не понял
Fileroller открывает - но не удобно

Оффлайн ilyuk

  • Пользователь
  • **
  • Сообщений: 42
  • Репутация: +19/-0
  • Автор темы
Просмотр ZIP с помощью Midnight Commander
« Ответ #6 : 01 Декабрь 2011, 22:20:29 »
Просмотр ZIP с помощью Midnight Commander:

Заменить содержимое файла /usr/libexec/mc/extfs.d/uzip (или где он у Вас) на следующее

Код
#! /bin/sh

CMD_UNZIP=unzip

mczip_list () {

$CMD_UNZIP -Z -l -T "$1" | gawk '
{if (NR == 1) { next }}
{if (NR == 2) { next }}
/^[0-9]/ { next }
{
perm = substr($1, 1, 1) "rwxrwxrwx"
date = substr($8, 5, 2) "-" substr($8, 7, 2) "-" substr($8, 1, 4) " " substr($8, 10, 2) ":" substr($8, 12, 2)
name = $9
printf "%s 1 root root %s %s %s\n", perm, $4, date, name
}'
}

mczip_copyout () {
$CMD_UNZIP -p $1 $2 > $3
}

LC_ALL=C

cmd="$1"
shift

case "$cmd" in
  list)
    mczip_list "$@";
    exit 0;;
  copyout)
    mczip_copyout "$@";
    exit 0;;
esac
exit 1
« Последнее редактирование: 12 Февраль 2015, 13:42:40 от Zay »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re:Просмотр SFS с помощью Midnight Commander
« Ответ #7 : 04 Июнь 2012, 18:01:50 »
просмотр sfs у меня работает только в 4.7 
для 4.8 Open=%cd %p#squashfs заменить на Open=%cd %p/squashfs://

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re:Просмотр ZIP с помощью Midnight Commander
« Ответ #8 : 03 Январь 2013, 11:18:13 »
Просмотр ZIP с помощью Midnight Commander [...]
Не работает, если в имени файла пробел. Лечится $CMD_UNZIP -p "$1" "$2" > "$3"
Не работает, если внутри архива файлы с пробелами в имени. Пока не нашел решения... :'(
« Последнее редактирование: 12 Февраль 2015, 13:43:39 от Zay »