私はその使い方を理解しようとし、xargs
次の実験を行いました。
ls | xargs | touch
現在のディレクトリのファイルの日付とディレクトリを更新したいと思います。
少しありますが、愚かなこれは、より単純な形式を使用して同じ効果を得ることができるからです。
xargs
それを読み、STDIN
他のコマンドのパラメータに変換するようです(デフォルトでは/bin/echo
コマンドが指定されていない場合)。私が何かを間違って理解したのでしょうか?
失敗しましたが、その理由を知りたいです。
答え1
次のようにする必要があります。
ls | xargs touch
このコマンドは、stdinから読み取られた複数の文字列を使用してxargs
コマンドを実行します。touch
あなたの場合、stdin forはxargs
パイプの出力端ですls
。
コマンド方法:
ls | xargs | touch
xargs
標準入力から文字列(ファイル名)を読み取るコマンドはありません。この場合は、xargs
各ファイル名を印刷し、touch
標準入力でファイル名のリストを取得してください。ただし、touch
標準入力では読み取られず、引数を提供していないため、次のエラーメッセージが表示されます。
touch: missing file operand
Try `touch --help' for more information.
(あなたの質問にこれを言及する必要があります)。