xargs me dá erro não pode abrir '{}' (Nenhum tal arquivo ou diretório)

0

Alguém pode explicar por que o comando abaixo produz o seguinte erro:

cannot open '{}' (No such file or directory)

Comando

$ ls -al|grep -v '^d\|^$'|awk '{print $10}'|xargs file '{}'

Eu obtenho os resultados que esperava, mas com um erro

{}:          cannot open '{}' (No such file or directory)
cpuinfo:     empty
cygdrive:    symbolic link to /cygdrive
devices:     empty
filesystems: empty
loadavg:     empty
meminfo:     empty
misc:        empty
mounts:      symbolic link to self/mounts
partitions:  empty
self:        symbolic link to 19812
stat:        empty
swaps:       empty
uptime:      empty
version:     empty
    
por jes516 08.07.2016 / 15:56

1 resposta

2

Como você está usando xargs errado, provavelmente se inspirou em como a pesquisa funciona.

xargs pega a entrada e a divide em pedaços para produzir alguns comandos, mas (a menos que você tenha solicitado), ela fornece vários argumentos no final do comando que você protege depois de xargs, então seu {} é apenas uma parte do comando. Então você acaba executando file {} <file_1> <file_2> ... <file_n> , file {} <file_n+1>... , .... (no seu caso você tem poucos arquivos que apenas um comando é executado).

Como você não tem um arquivo chamado {} , file avisa.

    
por 08.07.2016 / 16:05

Tags