Модификатор :P
был добавлен в Zsh версии 5.3 и поэтому будет недоступен в более старых версиях. Аналогичным, но не совсем идентичным подходом будет использование вместо этого модификатора :A
Из zshexpn(1)
:
Модификатор :a
Превратить имя файла в абсолютный путь: при необходимости добавляет текущий каталог; Удалить '.' отрезки пути; и удалите сегменты пути '..' и сегменты, которые непосредственно предшествуют им.
Модификатор :A
Превратите имя файла в абсолютный путь, как это делает модификатор 'a', а затем передайте результат через библиотечную функцию realpath(3) для разрешения символических ссылок.
Примечание: в системах, которые не имеют библиотечной функции realpath(3), символические ссылки не разрешаются, поэтому в этих системах 'a' и 'A' эквивалентны.
Примечание: foo: A и realpath(foo) различаются на некоторых входах. Для семантики realpath(foo) см. Модификатор P
Модификатор :P
Превратите имя файла в абсолютный путь, например, realpath(3). Результирующий путь будет абсолютным, не имеет ни '.' ни компоненты "..", и ссылаются на ту же запись каталога, что и имя входного файла.
В отличие от realpath(3), несуществующие конечные компоненты разрешены и сохранены.
Я пропустил некоторые из более посторонних деталей, поэтому обязательно ознакомьтесь со справочной страницей; раздел "Расширение истории", подраздел "Модификаторы".