HELP 1
Из-за пробелов вам нужно процитировать:
INPUT= "${file##*/}" OUTPUT= "${file%.txt}"_exd.txt
Это кажется немного странным, что между INPUT =
и именем файла есть пробел.
HELP 3
Если у вас есть файл input_1.txt
, тогда $ {file% .txt} _1.txt
становится input_1_1.txt
.
Я бы сопоставил точное имя файла:
for file in ~/Desktop/parent\ folder/*/input_1.txt; do
bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}"
done
HELP 4
Это вообще не оболочка.
переход в подкаталоги
for file in ~/Desktop/parent\ folder/*/input_1.txt; do
subdir="${file%/*}"
pushd "$subdir" &>/dev/null
file="${file##*/}"
bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}"
popd &>/dev/null
done
Хотя при использовании этого решения nautilus-actions
не будет использоваться
для добавления новых действий контекстного меню, он должен быть установлен, чтобы Nautilus вообще имел функцию действий, и чтобы действия появлялись в контекстном меню.
Идея заключается в том, чтобы иметь готовый, но неполный файл действий, который нужно редактировать и сохранять под новым именем для каждого нового действия контекстного меню. К этому общему файлу, в свою очередь, можно будет обращаться каждый раз с помощью файла запуска (как если бы это было приложение) или из самого контекстного меню (с помощью другого конкретного файла действий, созданного ранее).
Создайте папку ~/.local/share/file-manager/actions
.
Чтобы создать готовый файл действий, сделайте:
gedit ~/.local/share/file-manager/actions/new-action.desktop
Вот такими строками:
[Desktop Entry]
Type=Action
ToolbarLabel=<name-of-action>
Name=<name-of-action>
Profiles=profile-zero;
#TargetContext=false
#keep the above commented if you WANT the action to appear when you select files of the type specified by the line MymeTypes; un-comment it if you DO NOT WANT your new action to appear when you select the specified files
#TargetLocation=true
#keep the above commented if you DO NOT WANT the action to appear when right clicking an empty area; remove the comment when you WANT that.
[X-Action-Profile profile-zero]
Folders=*;
Exec=
Name=Default profile
MymeTypes=
#the above line specifies the types of files for which your new action appears when you select them (remove the line 'TargetContext=false' to achieve that)
#DO NOT SAVE directly after editing!
#USE "SAVE AS" TO SAVE YOUR NEW ACTION FILE!
Конечно, к нему можно обратиться напрямую, но приятнее иметь более простой способ открыть готовый файл. Это можно сделать через launcher файл:
gedit ~/.local/share/applications/Nautilus_action.desktop
С таким содержимым:
[Desktop Entry]
Type=Application
Name=New Nautilus action
Icon=nautilus
Categories=System;Settings;
Exec=sh -c 'gedit ~/.local/share/file-manager/actions/new-action.desktop'
Сделать его исполняемым:
chmod +x ~/.local/share/applications/Nautilus_action.desktop
После этого его можно запустить из меню или программы запуска приложений:
Вышеописанное предназначено для того, чтобы открыть общий ~/.local/share/file-manager/actions/new-action.desktop
, отредактировать и сохранить его с другим именем.
Запустите программу запуска "New Nautilus action"
Когда общий файл будет открыт в gedit, отредактируйте эти строки, которые определят ваше новое действие меню Nautilus (то есть: имя меню, имя action-файла и команду для выполнения):
ToolbarLabel=
Name=
Exec=
TargetContext=false
#
перед собой), если вы хотите, чтобы действие меню появлялось при выборе файлов (типов, указанных в строке MymeTypes; см. ниже о !
). Если вы не хотите, чтобы он появлялся при выделении (редкий случай, когда вы хотите, чтобы действие только появлялось на пустой области внутри папок), удалите комментарий (#
). TargetLocation=true
Учитывая вышеприведенную строку, если вы не хотите, чтобы ваше новое действие меню появлялось при щелчке правой кнопкой мыши на пустой области, добавьте перед ним #
; удалите комментарий, если вам нужно, чтобы действие появлялось при щелчке на пустой области внутри папок.
Добавьте в следующую строку mime-типы файлов, при выборе которых появляется ваше новое действие (для этого удалите/закомментируйте строку 'TargetContext=false'):
MymeTypes=;
Добавьте mime-типы, например: inode/directory
для папок, audio/*
для аудио и т.д., чтобы указать, для какого выбора вы хотите, чтобы действие появилось; чтобы исключить определенный тип mime, используйте !
перед ним. (Например, если вы используете действие для преобразования аудио в mp3, вы хотите, чтобы оно появлялось для всех аудио, кроме mp3-файлов; в этом случае оно должно быть MymeTypes=!audio/mp3;audio/*
). Посмотрите в свойствах файла (Basic/Type) в Nautilus, чтобы узнать его mime-тип.
НЕ СОХРАНЯЙТЕ ФАЙЛ напрямую, иначе ваше новое действие перезапишет общий файл действия!
Используйте 'Сохранить как', чтобы сохранить файл с ДРУГИМ ИМЕНЕМ.