Я хотел бы добавить скрипт nautilus для правого клика, например, преобразовать выбранный файл с base64, но не повезло. Регласная команда в терминале похожа:
base64 input.jpg output.txt
Это мой самый близкий сценарий для этого;
#!/bin/sh
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_Path" | base64 > Base64
Но он дает путь к файлу как base64. Может ли кто-нибудь помочь мне в этом?
В вашем исходном скрипте есть несколько проблем:
"$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
Спасибо за всех ребят, я сделал два сценария с вашей помощью и предложения для кодирования и декодирования.
Encode:
#!/bin/bash
for item in "$@"
do
mkdir /yourpath/encode
file=$(basename "$item" )
base64 "$item" > "/yourpath/encode/$file-base64"
done
Encode: [!d2 ]
for item in "$@"
do
mkdir /yourpath/decode
file=$(basename "$item" )
name=`echo $file | cut -f1 -d'-'`
base64 -d "$item" > "/yourpath/decode/$name"
done