[解決済み】stdin入力が空の場合、xargsコマンドを無視する方法は?
2022-04-03 09:35:50
質問
このコマンドを考えてみましょう。
ls /mydir/*.txt | xargs chown root
にあるすべてのテキストファイルの所有者を変更することを意図しています。
mydir
からルート
問題は、もし
.txt
の中にある
mydir
を指定すると、xargs はパスが指定されていないというエラーを送出します。これはエラーが投げられるので無害な例ですが、ここで使うスクリプトのように、空白のパスはカレントディレクトリであると見なされる場合があります。そのため、もし私がこのコマンドを
/home/tom/
に対して結果がない場合
ls /mydir/*.txt
の下にあるすべてのファイルが
/home/tom/
は所有者がrootに変更されます。
では、どうすればxargsに空の結果を無視させることができるのでしょうか?
どのように解決するのですか?
GNUの場合
xargs
を使用することができます。
-r
または
--no-run-if-empty
オプションで指定します。
--no-run-if-empty
-r
標準入力に空白以外がない場合は、コマンドを実行しないでください。 通常、入力がなくてもコマンドは一度だけ実行されます。 このオプションはGNUの拡張機能です.
BSD版の
xargs
は、macOS で使用されているため、空の入力に対してコマンドを実行しません。
-r
オプションは必要ありません(また、そのバージョンの
xargs
).
関連
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み] rsyncです。--include-from vs. --exclude-from 実際の違いは何ですか?
-
[解決済み] シェルスクリプトでの連想配列
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] シェルコマンドを実行しながらエコーする方法
-
[解決済み] オプションの入力引数を取るbashスクリプトを書くには?
-
[解決済み】シェルスクリプトでmongoのコマンドを実行するには?
-
[解決済み】xargsで入力1行ごとにコマンドを実行するようにする
-
[解決済み】xargsで複数のコマンドを実行する
-
[解決済み] xargsコマンドで>を使用するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Cp: ターゲットはディレクトリではありません
-
[解決済み] bashの文字列の等値性テストで、予期しない演算子エラーが発生するのはなぜですか?重複
-
[解決済み] systemd サービス 203/EXEC の失敗 (そのようなファイルやディレクトリがない) を修正する。
-
[解決済み] rsyncです。--include-from vs. --exclude-from 実際の違いは何ですか?
-
[解決済み] Bashを使ってプログレスインジケータを表示する [重複]。
-
[解決済み] Bashで最新のディレクトリを変数に取得する
-
[解決済み] シンプルなAsciiテーブルをCSVに変換する【終了】。
-
[解決済み] nohupプロセスを終了させる方法を教えてください。
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] IPアドレスのまとめ方