次のコマンドが次のエラーを生成する理由を説明できる人はいますか?
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>...
(あなたの場合、ファイルはほとんどなく、1つのコマンドのみを実行します。)
というファイルがないので教えてくれます{}
。file