-- Views
April 22, 26
スライド概要
はじめまして、ALJ Education Plus 株式会社のyukikoと申します。 IT教育支援や、DX推進が可能です。 ◆ スキル LPIC レベル2 AI / Python Splunk BI(データ可視化・分析) ◆ その他 新卒・未経験の学生向けに、エンジニア転職を応援する資料を趣味で作成しています。 もしよろしければご活用ください。 ◆IT研修講師をお探しの方は [email protected] にお気軽にお問い合わせください。 ※ALJ Education Plus 株式会社を通して、ご支援させていただきます。 ◆Zenn https://zenn.dev/yukiko_sapporo/articles/46c13e9f98b110
LPIC-101 マスター学習ツール【B問題セット】 問31 シェル・リダイレクト Q xargs コマンドの役割として正しいものはどれですか。 ✓ 正解 → 標準入力を読み取り、それを引数としてコマンドを実行する LPIC-101 | 問31 シェル・リダイレクト 1 /6
1 この用語は? xargs(エックスアーグス) eXtended ARGumentS =「拡張引数」/標準入力を引数に変換するコマンド かんたん定義 ■ 前のコマンドの出力(標準入力)を受け取り、それを別コマンドの「引数」として渡す橋渡 し役 ■ パイプ「|」だけでは引数として渡せないコマンド(rm, cp, mv, echo, touch 等)で必須 ■ 定番の使い方:find の結果を rm / mv / cp などに渡す ■ 代表例: find /tmp -name '*.tmp' | xargs rm LPIC-101 | 問31 シェル・リダイレクト 2 /6
2 簡単に書くよ ※正確な表現ではありません ざっくりイメージ ■ パイプ「|」で繋いでも、rmやecho は標準 入力を直接受け取れない ■ xargsが間に入って「標準入力→コマンド の引数」に変換してくれる ■ いわば通訳さん/伝票分配員のイメージ ■ 対話的な質問(-p)や引数数制限(-n)の オプションもある ■ ※選択肢の『対話的な質問を表示』は-pオ プションだけの話で、xargs全体の役割で はない LPIC-101 | 問31 シェル・リダイレクト 図解で理解 find 出力 │ xargs 変換! │ rm 標準入力 → 引数 に 変換! うさうさラーメン店で例えると 注文票(標準入力)を 厨房の材料(引数)に並べ替える 「伝票分配員」がxargs! 3 /6
3 詳しく書くよ ※原理原則 原理原則: xargs = 標準入力(stdin)を受け取り、単語ごとに分けてコマンドの引数に変 換して実行する ■ パイプ「|」は『前のコマンドの標準出力』を『次のコマンドの標準入力』へ渡す仕組み ■ しかし rm / cp / mv / echo / touch などは標準入力を読まず、引数(コマンドラインに書く単語)で動くタ イプ xargs は標準入力を空白や改行で区切り、それぞれを引数として次のコマンドに渡す ■ ■ 主要オプション:-n 数(1回に渡す引数の数を制限) / -I {}(プレースホルダ指定) / -p(実行前に確認) / -0(NULL区切り、ファイル名に空白があっても安全) ■ ■ 〇 正解:標準入力を読み取り、それを引数としてコマンドを実行する × 短いオプションを長いオプションに変換する → これはgetoptなどの話 ■ ■ × 対話的な質問を表示する → -p オプションの機能であって全体像ではない × 引数をXサーバに渡す → Xサーバ(GUI)とは無関係 ■ × 引数の数を制限する → -n オプションの機能。全体像ではない LPIC-101 | 問31 シェル・リダイレクト 4 /6
4 実機でやって問題ないか コマンド例 + Ubuntu / RedHat 差分 $ echo "a b c" | xargs touch # 引数に変換 → a b c を作成 $ find . -name '*.tmp' | xargs rm # 検索結果をrmへ $ ls | xargs -n 1 -I {} mv {} {}.bak # 1つずつ処理 $ find . -name '*.log' -print0 | xargs -0 rm # 空白ファイル対応 Ubuntu findutilsパッケージに標準同梱。apt install findutils (普通は入っています)。Ubuntu 24.04で動作確認 済み。 LPIC-101 | 問31 シェル・リダイレクト RedHat/RHEL RHEL/CentOS/Rocky も findutils に同梱。dnf install findutils。基本的な使い方はUbuntuと同じ。 差分なし。 5 /6
★ 一言でまとめるよ! xargs = 標準入力を「引数」に変えて渡す橋渡し役! うさうさ先生より パイプ「|」だけで rm や echo にファイル名が渡せないと思ったら xargs の出番。find と組み合わ せるのが王道! LPIC-101 | 問31 シェル・リダイレクト 6 /6