Сценарий щелчка правой кнопкой Nautilus для base64

я хотел бы добавить, что сценарий наутилуса для щелчка правой кнопкой, как преобразование выбрал файл с base64, но никакой удачей. Регулярная команда в терминале похожа:

base64 input.jpg output.txt

Это - мой самый близкий сценарий, чтобы сделать это;

#!/bin/sh
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_Path" | base64 > Base64

Но это дает путь файла как base64. Кто-либо может помочь мне об этом?

1
задан 22 January 2017 в 19:45

3 ответа

Я предполагаю, что можно уже добавить пользовательский сценарий к наутилусу и только нуждаться в правильном сценарии, чтобы сделать фактическую работу, если это иметь место затем пробует этот сценарий:

#!/bin/bash
# Generating base64 files from nautilus
m=0 # counter
while [ -n "$1" ] && [ -f "$1" ] 
do
   echo " " >> output.txt     
   echo "$1" >> output.txt
   base64 "$1" >> output.txt
   echo " " >> output.txt
   m=$(($M + 1))
   shift
   echo " " >> output.txt           
done
zenity --info --text="Operations finished and "$m" file(s) encoded"
exit 0

исполняемый файл make-файла с:

chmod +x /path/to/script

Объясненный:

  1. -n "$1" проверки, если значения больше, чем 0, т.е. не 0
  2. -f "$1" проверки, если файл существует и является регулярным файлом.
  3. shift перемещения через данные аргументы
  4. m=$(($m + 1)) добавляет 1 к 0 начальное значение количества для отслеживания количество файлов, преобразовываемых
  5. zenity дисплеи диалоговое окно к обозначенному концу операций.
0
ответ дан 7 December 2019 в 12:36

Ваш исходный сценарий имеет пару проблем:

  • "$NAUTILUS_SCRIPT_SELECTED_FILE_Path" должен быть все использован для своей выгоды и записан по-другому, как в "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS".
  • echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | base64 только закодирует строку "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" и вот именно. Если Вы хотите закодировать файл, необходимо передать ту переменную через xargs, или еще лучше - передают его непосредственно. base64 может взять файлы в качестве аргументов, таким образом base64 "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" то, что Вы действительно хотите сделать. Никакие каналы здесь, никакой echo.

Ниже я обеспечиваю альтернативный и довольно упрощенный подход

Инструкции по Сценарию

#!/bin/bash
for item in "$@"
do
   file=$(basename "$item" )
   base64 "$item" > "$HOME/$file.base64"
done

  • Место этот файл в ~/.local/share/nautilus/scripts/, каталог
  • гарантирует, что это - исполняемый файл с chmod +x <path to script here> команда.
  • Выбор файлы, которые Вы хотите, щелкают правой кнопкой и переходят к подменю сценариев. Выберите свой сценарий.
  • Однажды сценарий сделан, закодированный файл каждого base64 будет помещен в Вашу домашнюю папку с исходным именем файла и .base64 расширение. Можно хотеть изменить сценарий для создания .base64 файлы в том же каталоге, который прекрасен полностью, но это могла бы быть проблема, если у Вас нет разрешения создать файлы в том каталоге.

    , Конечно, этот сценарий немного упрощен. Я создал более включенный сценарий в Python3, который можно найти на моем репозиторий GitHub для сценариев наутилуса. Это делает немного больше, чем другие сценарии - проверяют на тип файла, покажите информацию и ошибочные всплывающие окна, и т.д.

3
ответ дан 7 December 2019 в 12:36

Спасибо за всех парней, я сделал два сценария с Вашей справкой, и предложения для кодируют и декодируют.

Закодируйте:

#!/bin/bash
for item in "$@"
do
   mkdir /yourpath/encode
   file=$(basename "$item" )
   base64 "$item" > "/yourpath/encode/$file-base64"
done

Декодируйте:

for item in "$@"
do
   mkdir /yourpath/decode
   file=$(basename "$item" )
   name=`echo $file | cut -f1 -d'-'`
   base64 -d "$item" > "/yourpath/decode/$name"

done
0
ответ дан 7 December 2019 в 12:36

Другие вопросы по тегам:

Похожие вопросы: