caminho completo na glob no Zsh

3

Digamos que eu execute o seguinte em /some/path :

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

Existe algum parâmetro que eu possa usar para dizer ao Zsh para imprimir, não apenas o nome do arquivo, mas o caminho absoluto completo para $x ? (sem codificar explicitamente /some/path na instrução print .

    
por Josh 23.01.2014 / 21:52

3 respostas

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

Ou:

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

Embora neste caso:

print -rl foo/*(:A)

é o suficiente.

:A expande os links simbólicos. Você também pode usar :a , o que não é possível.

    
por 23.01.2014 / 22:32
3

Você pode usar o a modificador de expansão do histórico em um qualificador de globo .

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

Com :A em vez de :a , os links simbólicos são expandidos.

    
por 23.01.2014 / 22:23
1

Se você preceder o caminho para o padrão, $x expandirá para o caminho completo:

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

Mas não tenho certeza se é exatamente isso que você está procurando?

Se você não quiser codificar /some/path e quiser que o código sempre procure no diretório atual, use $ PWD:

for x in $PWD/foo/*; do
  print $x
done
    
por 23.01.2014 / 21:56

Tags