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
因為你用
xargs
錯了,你可能受到了 find 工作原理的啟發。
xargs
接受輸入並將其分成幾部分以產生幾個命令,但是(除非你已經要求它)它在你在 xargs 之後指定的命令的末尾給出了多個參數,所以你{}
只是命令的一部分。所以你最終執行file {} <file_1> <file_2> ... <file_n>
,file {} <file_n+1>...
, …. (在你的情況下,你的文件太少,只執行一個命令。)由於您沒有名為 的文件
{}
,file
因此告訴您。