MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


Linux xargs
profile-img
投稿者: fujioka090...さん
投稿日:2023/03/08 11:53
更新日:
like-img
分類
技術
テクノロジー
Unix系サーバ
キャリア
運用・保守
投稿内容

今回はxargsコマンドについて説明しようと思います。


xargsコマンドは標準入力から受け取ったものを別のコマンドに引数として渡すコマンドになります。引数というのは例えば「cat ○○」や「touch ○○」等のコマンドにある○○の部分です。引数を指定するだけならxargsを使わなくても可能です。ではどういった使い方をするコマンドなのかについて具体例を用いながら説明していきます。


まずxargsの基本的な書式は下記のようになります。


xargs 【オプション】 コマンド


上記の入力をすると、標準入力からの入力待ち状態となります。つまり、ユーザー側から入力したものをそのままコマンドに渡す状態です。これではあまり使い方に幅が無いので、|(パイプライン)と組み合わせて下記のようによく使われています。


コマンド1 | xargs 【オプション】 コマンド2


上記の入力をするとコマンド1の出力結果をコマンド2の引数として渡し、実行することができます。xargsの主なオプションを下記に示します。


-a・・・標準入力の代わりにファイルからの引数入力をする

-I・・・コマンドに引数を渡す位置を指定することができる。

-p・・・コマンドを実行するかどうかを実行前に確認するようになる。

-P・・・コマンドを並行実行する数を指定する。


xargsを用いた具体的なコマンド例をいくつか下記に示します。


find . -type f | xargs cat

→カレントディレクトリ内にある全てのファイル内容をつなげて表示します。自分が作業しているフォルダ内のファイル文章をすべて表示し、ソートしたい場合等に使用できます。


find . -name '*.memo' -type f | xargs rm

→カレントディレクトリ内の末尾が「.memo」で終わるファイルをすべて削除できます。


cat filelist.txt | xargs touch

→「filelist.txt」に記載があるファイル名をtouchコマンドに渡して、ファイル名毎にファイルを作成することができます。ただし、「filelist.txt」にはファイル名毎に改行して記載する必要があります。


このようにxargsコマンドは別のコマンドと組み合わせた様々な使い方があるコマンドとなります。コマンドの引数が1つや2つだと使用する意味は無いのですが、何十、何百と引数があった場合に活躍するコマンドとなります。おそらくもっと複雑な使い方があるコマンドだと思うので、機会が有ったら調べてみたいと思います。


参考資料

xargs – 標準入力と引数を組み合わせコマンドを実行する | Linuxコマンド.NET (linuxcommand.net)

覚えると便利、xargsコマンドの使い方12選 | TECH+(テックプラス) (mynavi.jp)

【Linuxコマンド基礎】xargsがわからない!→基礎中の基礎を解説します。 | Web Apps Labo (e-seventh.com)
コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3