Полный путь в glob в Zsh

Скажем, я запускаю следующий /some/path :

 for x in foo/*; do print $x done 

Существуют ли какие-либо параметры, которые я могу использовать, чтобы указать Zsh для печати, а не только имя файла, но полный абсолютный путь к $x ? (без явно жесткого кодирования /some/path в операторе print .

3 Solutions collect form web for “Полный путь в glob в Zsh”

 for x (foo/*(:A)) print -r $x 

Или:

 for x (foo/*) print -r $x:A 

Хотя в этом случае:

 print -rl foo/*(:A) 

достаточно.

:A Расширяет символические ссылки. Вы также можете использовать :a который этого не делает.

Вы можете использовать модификатор расширения истории в квалификаторе glob .

 for x in foo/*; do print -r $x(:a) done 

С :A вместо :a , символические ссылки расширяются.

Если вы добавите путь к шаблону, $x будет расширяться до полного пути:

 for x in /some/path/foo/*; do print $x done 

Но я не уверен, что это именно то, что вы ищете?

Если вы не хотите использовать hardcode /some/path и хотите, чтобы код всегда просматривался в текущем каталоге, используйте $ PWD:

 for x in $PWD/foo/*; do print $x done 
  • zsh: То, что выражение glob эквивалентно `find. -тип f`?
  • Глобус не работает в zsh, но работает в bash
  • Запуск команд, хранящихся в переменных оболочки
  • Сильная команда таймаута в zsh
  • gnome-terminal: небольшой зазор в правой части экрана (Ubuntu)
  • Как переключиться на root и использовать те же точечные файлы, что и мой обычный пользователь?
  • ZSH: разбиение первых N файлов по пути в лексикографическом порядке
  • Помните половину типизированной команды, пока я проверяю что-то
  • Расширение поиска истории в zsh
  • Почему некоторые ZLE-последовательности перенаправляются на «self-insert»?
  • Переход к началу действия вставки в режиме vi оболочки VI
  • Linux и Unix - лучшая ОС в мире.