xargs에서 '{}'을(를) 열 수 없다는 오류가 발생했습니다. (해당 파일이나 디렉터리가 없습니다.)

xargs에서 '{}'을(를) 열 수 없다는 오류가 발생했습니다. (해당 파일이나 디렉터리가 없습니다.)

다음 명령이 다음 오류를 생성하는 이유를 설명할 수 있는 사람이 있습니까?

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

잘못 사용하고 있기 때문에 xargsfind 작동 방식에서 영감을 받을 수 있습니다.

xargs입력을 받아 여러 명령을 생성하기 위해 여러 부분으로 분할하지만 (요청하지 않는 한) xargs 다음에 지정하는 명령 끝에 여러 인수를 제공하므로 {}명령의 일부일 뿐입니다. 따라서 file {} <file_1> <file_2> ... <file_n>, , .... 을 실행하게 됩니다. file {} <file_n+1>...(귀하의 경우에는 파일이 거의 없고 하나의 명령만 실행합니다.)

이라는 파일이 없기 때문에 알려줄 것입니다 {}.file

관련 정보