Вы можете создать псевдонимы в вашем файле ~/.bashrc. Например, создание 7-zip-архива папки, которая обычно
7z a -m0=lzma2 -mx=9 -ms=on -mf=on -mtc=on archive_name.7z folder_name
в вашем ~/.bashrc вставьте:
alias 7zipfolder='7z a -m0=lzma2 -mx=9 -ms=on -mf=on -mtc=on'
После этого вы можете просто сделать,
7zipfolder archive_name.7z folder_name
Вам нужно будет выйти и снова войти, чтобы он вступил в силу, или выполните команду source ~/.bashrc.
HTH :)
==== РЕДАКТИРОВАТЬ: Учитывая ответы ниже, ну, я думаю, вы могли бы сделать это, если вы измените PATH для просмотра в ваших личных папках сценариев, например,
PATH = ~/.shortcommands:$ PATH
И затем вы можете создавать сценарии с теми же именами, что и те, которые установлены в, например, /usr /sbin, перебирать все аргументы, расширять те, которые вы хотите, и затем завершать, вызывая "настоящий" сценарий / приложение в его абсолютный путь с переведенным набором опций.
Например
7z --folder Documents.7z Documents/
звонки
~/.shortcommands/7z
который переводит все в:
/usr/bin/7z a -m0=lzma2 -mx=9 -ms=on -mf=on -mtc=on Documents.7z Documents/
Сам скрипт будет перебирать список аргументов, а затем переводить то, что имеет смысл для ваших нужд. Вы, вероятно, далеки от создания "оболочки" поверх исходной команды, но, очевидно, это не то, что вы ищете. Не уверен, насколько вы опытны в написании сценариев bash, но есть множество очень хороших ресурсов. Просто в качестве примера для итерации аргументов, вот фрагмент из скрипта, над которым я сейчас работаю, который создает / проверяет данные контроля четности и файлы контрольной суммы для других файлов:
# Iterate arguments while shifting off those meant for us, leaving behind files to process.
# No clue how to directly index on the arguments array, so I copy it:
args=("$@")
files=()
files_count=0
# Then we iterate over each argument, collecting anything that's for us, and adding files
# to our files array, making sure to get absolute paths should we somehow get relative ones
# (e.g. from Nautilus or the commandline):
for ((i=0; $i<$#; i++)); do
argument=${args[$i]}
# How deep to go into FILE before starting to create/check protection files:
if [ "$argument" = "-d" -o "$argument" = "--depth" ]; then
# Seek to the next argument, i.e. the value:
let "i=i+1"
# We'll get an error if we try to just grab the next argument and it isn't there:
if [ $i -eq $# ]; then
print_argument_error "${args[$i-1]} needs a value."
else
target_depth="${args[$i]}"
# Okay, so is the value sane?
if [[ ! $target_depth =~ ^[1-9][0-9]{0,}$ ]]; then
print_argument_error "${args[$i-1]} must be 1 or higher."
fi
fi
# Whether or not to include output from our client commands, too:
elif [ "$argument" = "-v" -o "$argument" = "--verbose" ]; then
print_client_output=1
# Whether or not to verify files:
elif [ "$argument" = "-V" -o "$argument" = "--verify" ]; then
check=1
# Whether or not to create validation files:
elif [ "$argument" = "-C" -o "$argument" = "--create" ]; then
verify=1
# Whether or not to repair files when possible:
elif [ "$argument" = "-R" -o "$argument" = "--repair" ]; then
verify=1
repair=1
# That's all the arguments we understand, the rest must be files:
else
# So we assume anything but an option is an input file or dir. Get the item:
item="$argument"
# If it's a file, we get its directory location and convert it to absolute,
# then prepend the file name back onto that before pushing it onto our files
# array. If it's a dir, we just convert it to absolute before pushing it:
if [ -f "$item" ]; then
dir="`dirname "$item"`"
files[${files_count}]="`cd "$dir"; pwd`/`basename "$item"`"
let "files_count=files_count+1"
elif [ -d "$item" ]; then
files[${files_count}]="`cd "$item"; pwd`"
let "files_count=files_count+1"
fi
fi
done