私が直面した問題は、何らかの理由でワイルドカード量指定子が xargs を介してコマンドに渡されないことです。
次のような内容のファイルfile1があるとします。
-l
-a
f*
xargs経由でlsに引数を渡す必要があります。
cat file1 | xargs -n3 ls
ls -laコマンドに相当する出力に、端末からの追加機能を追加すると、
ls: cannot access f*: No such file or directory.
しかし、ファイルはディレクトリにあります (ls -la f*
適切な出力を返します) たとえば、f* をfile1に置き換えると、正しい出力も得られます。
説明してもらえますか、なぜそれが起こるのですか? ありがとう。
EDIT1:
file1
ファイルからシェルインタープリターを介してls
コマンドに引数を渡す方法を追加するのは興味深いようです。以下に例を示します。
ls `xargs -n3 < file1`
ls
呼び出しの前にシェル展開が行われるようになりました。ls -la f*