readlink -f não está funcionando em vários arquivos

1

Eu tentei executar readlink -f em vários arquivos usando wildcard "*" , mas ele avalia outros arquivos como operando

Comando

readlink -f *log

Saída (desejada)

/home/trail_1.log
/home/trail_2.log

Estou fazendo algo errado? Estou usando tcsh e readlink é apenas o comando Estou ciente de ler o caminho do arquivo.

    
por JigarGandhi 12.01.2015 / 11:32

2 respostas

2

Você também pode usar realpath :

% realpath *
/data/code/mdweb/Gemfile
/data/code/mdweb/Gemfile.lock
/data/code/mdweb/README.markdown

realpath não é POSIX. Está disponível por padrão nos sistemas FreeBSD e em alguns (mas não todos) sistemas Linux (mas o AFAIK pode ser instalado como um pacote na maioria dos sistemas Linux, se não em todos). O comportamento derealpath pode ser diferente entre as implementações, portanto, o comportamento acima não é garantido para funcionar. Eu testei no FreeBSD 10 & Arch Linux.

    
por 12.01.2015 / 12:42
3

readlink só funciona com um arquivo, você precisa de um loop para fazer isso:

for f in *; do
  readlink -f -- "$f"
done
    
por 12.01.2015 / 11:39