다음 명령이 다음 오류를 생성하는 이유를 설명할 수 있는 사람이 있습니까?
cannot open `{}' (No such file or directory)
주문하다
$ ls -al|grep -v '^d\|^$'|awk '{print $10}'|xargs file '{}'
예상한 결과를 얻었지만 오류가 발생했습니다.
{}: 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
답변1
잘못 사용하고 있기 때문에 xargs
find 작동 방식에서 영감을 받을 수 있습니다.
xargs
입력을 받아 여러 명령을 생성하기 위해 여러 부분으로 분할하지만 (요청하지 않는 한) xargs 다음에 지정하는 명령 끝에 여러 인수를 제공하므로 {}
명령의 일부일 뿐입니다. 따라서 file {} <file_1> <file_2> ... <file_n>
, , .... 을 실행하게 됩니다. file {} <file_n+1>...
(귀하의 경우에는 파일이 거의 없고 하나의 명령만 실행합니다.)
이라는 파일이 없기 때문에 알려줄 것입니다 {}
.file