Если Вы предпочитаете делать это от GUI, это объяснено в справке для файлового браузера GNOME (известное как Наутилус):
В основном Вы просто выбираете папку, и затем из меню выбирают File-> Properties-> Permissions.
Иначе ответ sepp2k абсолютно корректен, и ссылка txwikinger является большой, если Вы интересуетесь всесторонним объяснением полномочий файла Unix.
Проиллюстрировать ответ Ignacio (использование после протокола: сначала проверьте, существует ли lockfile, и затем установите прерывание), можно решить проблему как это:
$ cat test2.sh
if [ -f run_script.lck ]; then
echo Script $0 already running
exit 1
fi
trap "rm -f run_script.lck" EXIT
# rest of the script ...
Проверьте на присутствие блокировки прежде, чем поставить капкан.
На пути поставлен капкан на ошибках и позволен sh
прервите сценарий в случае ошибок (set -e
). Например,
$ cat test.sh
set -e
trap "echo foo" ERR
if [ $# == 1 ]; then
exit 0
fi
false
$ bash test.sh
foo
$ bash test.sh 1
$
(где $#
количество аргументов),
В Вашем сценарии просто необходимо удостовериться, что Вы выполняете свою команду прерывания, когда сценарий работает успешно (т.е. никакого катастрофического отказа не происходит, например, в конце Вашего нормального процесса выполнения программы).
set -e
средства, что каждый неравный статус выхода 0
заканчивает выполнение сценария. Подобный этому, с set -u
каждый (вероятно, случайный) использование неопределенной переменной заканчивает выполнение.
Таким образом, передавая эту идею исходному варианту использования, решение могло быть похожим на это:
$ cat test.sh
set -e
trap "rm -f run_script.lck" ERR
if [ -f run_script.lck ]; then
echo Script $0 is already running
exit 1
fi
#
# do all the work ...
#
# no error until now
rm -f run_script.lck