В документации ядра Linux Mandatory File Locking For The Linux Operating System есть немного истории:
Схема обязательной блокировки System V должна была иметь как можно меньше влияния на существующий пользовательский код. на существующий пользовательский код. Схема основана на маркировке отдельных файлов как кандидатов на обязательную блокировку, и использовании существующего интерфейса fcntl()/lockf() интерфейс для применения блокировок так же, как если бы это были обычные, консультативные блокировки.
Файл помечается как кандидат на обязательную блокировку путем установки бита group-id в его файловом режиме, но удаляя бит group-execute. В остальном это бессмысленная комбинация, и она была выбрана разработчиками System V, чтобы не чтобы не сломать существующие пользовательские программы.
(Более конкретно, в книге Advanced Programming in the UNIX Environment говорится, что это было сделано в System V Release 3.)
.
На ум приходят два варианта:
Использовать переменную:
w="/my/working/directory"
cd "$w"
Использовать псевдоним:
alias cdw='cd /my/working/directory'
cdw
Вы можете использовать переменную CDPATH для моделирования. Просто создайте каталог с программными ссылками на пути назначения, например.
mkdir ~/dir_aliases
ln -s /path/to/alias ~/dir_aliases/@
ln -s /another/path ~/dir_aliases/%
...
Затем добавьте этот каталог в CDPATH (, возможно, в.bashrc или подобном)
CDPATH=~/dir_aliases
Ввод
cd @
приведет вас к ~/dir_aliases/@
. (К сожалению, будет показан путь ссылки, вам придется
cd $(readlink -f.)
чтобы увидеть настоящий путь.)