я хотел бы добавить, что сценарий наутилуса для щелчка правой кнопкой, как преобразование выбрал файл с base64, но никакой удачей. Регулярная команда в терминале похожа:
base64 input.jpg output.txt
Это - мой самый близкий сценарий, чтобы сделать это;
#!/bin/sh
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_Path" | base64 > Base64
Но это дает путь файла как base64. Кто-либо может помочь мне об этом?
Я предполагаю, что можно уже добавить пользовательский сценарий к наутилусу и только нуждаться в правильном сценарии, чтобы сделать фактическую работу, если это иметь место затем пробует этот сценарий:
#!/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
Объясненный:
-n "$1"
проверки, если значения больше, чем 0, т.е. не 0 -f "$1"
проверки, если файл существует и является регулярным файлом. shift
перемещения через данные аргументы m=$(($m + 1))
добавляет 1
к 0
начальное значение количества для отслеживания количество файлов, преобразовываемых zenity
дисплеи диалоговое окно к обозначенному концу операций. Ваш исходный сценарий имеет пару проблем:
"$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 для сценариев наутилуса. Это делает немного больше, чем другие сценарии - проверяют на тип файла, покажите информацию и ошибочные всплывающие окна, и т.д.
Спасибо за всех парней, я сделал два сценария с Вашей справкой, и предложения для кодируют и декодируют.
Закодируйте:
#!/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