«псевдонимы» обычно относятся к псевдонимам командной строки в оболочках, что может быть не тем, что вам нужно, если вы используете графический интерфейс . Наиболее близким к «ярлыкам» для файлов являются символические ссылки, но они всего лишь способ ссылки на файл по другому имени, а не то, что можно использовать для передачи аргументов командной строки программе.
Лучше всего подходит простой сценарий оболочки. Например. создайте файл со следующим содержимым и сделайте его исполняемым ( chmod + x / path / to / the / script
):
#!/bin/sh
evince --page-label=36 /path/to/the/file.pdf
Запуск сценария должен запустить evince
и запросить его открыть данный файл на данной странице.
Как упоминалось в комментариях, параметры, необходимые для открытия документа в данной позиции, полностью зависят от программы. Например, параметр - page-label
упоминается в справке командной строки . Многие текстовые редакторы (текстовый режим) и меньше
поддерживают опцию + NNN
для перехода к строке NNN при открытии файла. С другой стороны, LibreOffice в некоторых случаях сохраняет последнюю просмотренную позицию для каждого пользователя . Проверьте руководства к своим программам.
#!/bin/bash
# Setting the Variables for execution
LOGDIR=$HOME
CURRENTTIME=$(date +"%Y%m%d%s%H%M%S")
LOGFILE=${LOGDIR}/chgpermission_${CURRENTTIME}.log
MASTERFILE=$1
INDEX=0
# Checking the number of Parameters passed
if [ "$#" -ne 1 ]; then
echo "Master file name is mandatory parameter" > ${LOGFILE}
exit 1
fi
# Loading the Master file into an Array
echo "Loading the Master file ${MASTERFILE} into an array" >> ${LOGFILE}
while read line
do
#echo $line
MASTERARRAY[$INDEX]=$HOME/$line
INDEX=$(expr $INDEX + 1)
done < ${MASTERFILE}
echo "Number of parameters in an master array ${MASTERARRAY[@]}" >> ${LOGFILE}
# Changing the permission of the file
echo "Changing the permission of the file in master file ${MASTERFILE}" >> ${LOGFILE}
index=0
for index in "${MASTERARRAY[@]}"
do
if [ -f "$index" ]
then
echo "$index file exist"
echo "$index file exist" >> ${LOGFILE}
chmod 755 "$index"
chown workstation "$index"
chgrp workstation "$index"
else
echo "$index file does not extst"
echo "$index file does not exist" >> ${LOGFILE}
fi
done
Использование правильного инструмента для работы в *nix важно, но на самом деле повторение одного и того же пути в каждой цепочке команд выглядит глупо. Вместо этого вам действительно следует использовать переменные Bash, а в небольших сценариях особенно использовать $_
.
Ваша команда станет:
chmod 123 WantToChangeThisFile && chgrp admin $_
ALT +. делает то же самое, вытягивая последний использованный аргумент в вашей текущей оболочке.