Man page - xargs(1)
Packages contains this manual
Available languages:
en fr pl ja ro zh_TW zh_CNManual
XARGS
名 前書 式
説 明
オ プ シ ョ ン
例
終 了 ス テ ー タ ス
規 格 へ の 準 拠
バ グ
バ グ 報 告
著 作 権
関 連 項 目
名 前
xargs - 標 準 入 力 を 読 み 込 ん で コ マ ン ド ラ イ ン を 作 成 し 実 行 す る
書 式
xargs [ options ] [ command [ initial-arguments ]]
説 明
こ の マ ニ ュ ア ル ペ ー ジ は GNU 版 xargs の 使 用 法 を 説 明 し て い ま す 。 xargs は 、 標 準 入 力 か ら 空 白 や 改 行 で 区 切 ら れ た 一 連 の 項 目 を 読 み 込 み (空 白 は ダ ブ ル ク ォ ー ト 、 シ ン グ ル ク ォ ー ト 、 バ ッ ク ス ラ ッ シ ュ に よ っ て 保 護 で き ま す )、 こ れ を 引 数 に し て 、 指 定 し た command を 1 回 以 上 実 行 す る (デ フ ォ ル ト の コ マ ン ド は echo で す )。 こ の と き 、 ユ ー ザ ー が command に 対 し て 指 定 し た 引 数 (上 記 書 式 の initial-arguments ) が あ れ ば 、 標 準 入 力 か ら 読 み 込 ん だ 一 連 の 項 目 は 、 そ の 後 ろ に 追 加 さ れ ま す 。 標 準 入 力 に お け る 空 行 は 無 視 さ れ ま す 。
command の コ マ ン ド ラ イ ン は 、 ( -n や -L オ プ シ ョ ン が 使 用 さ れ て い な い 場 合 は ) シ ス テ ム が 定 め て い る コ マ ン ド ラ イ ン の 長 さ の 限 界 に 達 す る ま で 、 長 い も の が 作 成 さ れ ま す 。 そ し て 、 指 定 さ れ た command が 、 入 力 項 目 の リ ス ト を 一 つ 残 ら ず 処 理 す る の に 必 要 な 回 数 だ け 、 呼 び 出 さ れ ま す 。 そ の た め 、 お お む ね 、 command が 呼 び 出 さ れ る 回 数 は 、 入 力 項 目 の 数 よ り も 、 ず っ と 少 な く て す む こ と に な り ま す 。 こ の こ と は 、 た い て い の 場 合 、 パ フ ォ ー マ ン ス を 著 し く 向 上 さ せ る こ と に な り ま す 。 な お 、 コ マ ン ド の 中 に は 、 都 合 が よ い こ と に 、 並 列 的 に 実 行 で き る も の も あ り ま す 。 -P オ プ シ ョ ン を 参 照 し て く だ さ い 。
Unix で は 、 フ ァ イ ル 名 に 空 白 や 改 行 を 含 む こ と が 可 能 な の で 、 こ う し た デ フ ォ ル ト の 動 作 は 、 し ば し ば 問 題 と な り ま す 。 空 白 や 改 行 を 含 む フ ァ イ ル 名 は 、 xargs に よ っ て 適 切 に 処 理 さ れ ま せ ん 。 こ の よ う な 状 況 で は 、 -0 オ プ シ ョ ン の 利 用 を お 勧 め し ま す 。 こ れ を 用 い れ ば 問 題 を 回 避 で き ま す 。 な お 、 -0 オ プ シ ョ ン を 使 う 場 合 は 、 xargs の 入 力 を 生 成 す る プ ロ グ ラ ム 側 で も 、 区 切 り 文 字 に ヌ ル 文 字 を 使 う よ う に す る 必 要 が あ り ま す 。 た と え ば GNU find を 使 う 場 合 ば 、 -print0 オ プ シ ョ ン を 用 い る こ と に な り ま す 。
指 定 し た コ マ ン ド の 実 行 が 、 終 了 ス テ ー タ ス 255 で 終 了 す る と 、 xargs は 即 座 に 停 止 し て 、 そ れ 以 上 入 力 を 読 み 込 み ま せ ん 。 こ の と き に は 、 エ ラ ー メ ッ セ ー ジ を 標 準 エ ラ ー に 出 力 し ま す 。
オ プ シ ョ ン
-0, --null
入 力 さ れ る 項 目 が 、 ホ ワ イ ト ス ペ ー ス (空 白 や 改 行 ) で は な く 、 ヌ ル 文 字 に よ っ て 区 切 ら れ ま す 。 ま た 、 ク ォ ー ト や バ ッ ク ス ラ ッ シ ュ は 、 特 別 な 扱 い を し ま せ ん (つ ま り 、 す べ て の 文 字 が そ の ま ま に 解 釈 さ れ ま す )。 フ ァ イ ル 終 端 文 字 列 は 無 効 に な り 、 他 の 引 数 と 同 じ よ う に 扱 わ れ ま す 。 こ の オ プ シ ョ ン は 、 入 力 さ れ る 項 目 に ホ ワ イ ト ス ペ ー ス 、 ク ォ ー ト 、 バ ッ ク ス ラ ッ シ ュ な ど が 含 ま れ る 可 能 性 が あ る 場 合 に 、 役 に 立 ち ま す 。 GNU find の -print0 オ プ シ ョ ン は 、 こ の モ ー ド に 適 し た 入 力 を 生 成 し ま す 。
-a file , --arg-file= file
入 力 項 目 を 、 標 準 入 力 か ら で は な く file か ら 読 み 込 み ま す 。 デ フ ォ ル ト で は 、 指 定 し た コ マ ン ド が 実 行 さ れ る 際 に 、 標 準 入 力 が /dev/null に 付 け 換 え ら れ ま す が 、 こ の オ プ シ ョ ン を 使 用 し た 場 合 は 、 標 準 入 力 の 付 け 換 え が 起 こ り ま せ ん 。
--delimiter= delim , -d delim
入 力 さ れ る 一 連 の 項 目 が 、 指 定 さ れ た 文 字 に よ っ て 区 切 ら れ る こ と に な り ま す 。 指 定 さ れ る 区 切 り 文 字 は 、 単 一 の 文 字 で も よ く 、 \n の よ う な C 言 語 式 の エ ス ケ ー プ 文 字 で も 、 8 進 数 や 16 進 数 の エ ス ケ ー プ コ ー ド で も か ま い ま せ ん 。 8 進 数 や 16 進 数 の エ ス ケ ー プ コ ー ド は 、 printf コ マ ン ド の 場 合 と 同 様 に 解 釈 さ れ ま す 。 マ ル チ バ イ ト 文 字 に は 対 応 し て い ま せ ん 。 入 力 を 処 理 す る 際 、 ク ォ ー ト や バ ッ ク ス ラ ッ シ ュ は 特 別 扱 い さ れ ま せ ん 。 す な わ ち 、 入 力 中 の あ ら ゆ る 文 字 が 、 文 字 通 り に 解 釈 さ れ ま す 。 -d オ プ シ ョ ン を 指 定 す る と 、 フ ァ イ ル 終 端 文 字 列 は 無 効 に な り 、 ( xargs が 作 成 す る コ マ ン ド ラ イ ン に お い て ) 他 の 引 数 と 同 じ よ う に 扱 わ れ ま す 。 入 力 が 、 項 目 を 改 行 で 区 切 っ て い る だ け の よ う な 単 純 な 構 成 の 場 合 に は 、 こ の オ プ シ ョ ン を 使 っ て も よ い で す が 、 ほ と ん ど の 場 合 、 な る べ く な ら 、 xargs の --null を 使 う よ う に 、 出 力 側 の プ ロ グ ラ ム を 組 み 立 て る 方 が よ い で す 。
-E eof-str
eof-str を フ ァ イ ル 終 端 文 字 列 と し て 設 定 し ま す 。 フ ァ イ ル 終 端 文 字 列 が 入 力 中 の 1 行 と し て 現 れ る と 、 そ れ 以 後 の 入 力 は 無 視 さ れ ま す 。 -E も -e も 指 定 し な い 場 合 、 フ ァ イ ル 終 端 文 字 列 は 使 用 さ れ ま せ ん 。
-e [ eof-str ], --eof [ =eof-str ]
こ の オ プ シ ョ ン は -E オ プ シ ョ ン の 同 義 語 で す 。 -E の 方 を 使 っ て く だ さ い 。 理 由 は 、 そ ち ら が POSIX に 準 拠 し て い る の に 対 し て 、 こ ち ら は 準 拠 し て い な い か ら で す 。 eof-str の 部 分 が 省 略 さ れ る と 、 フ ァ イ ル 終 端 文 字 列 が 存 在 し な い こ と に な り ま す 。 -E も -e も 指 定 し な い 場 合 、 フ ァ イ ル 終 端 文 字 列 は 使 用 さ れ ま せ ん 。
-I replace-str
initial-arguments 中 で 文 字 列 replace-str が 現 れ る す べ て の 箇 所 を 、 標 準 入 力 か ら 読 み 込 ん だ 名 前 で 置 き 換 え ま す 。 な お 、 標 準 入 力 中 に ク ォ ー ト さ れ て い な い 空 白 が あ っ て も 、 そ れ は 入 力 項 目 の 区 切 り に は な り ま せ ん 。 区 切 り 文 字 は 改 行 文 字 だ け に な り ま す 。 -x と -L 1 の 指 定 を 暗 に 含 み ま す 。
-i [ replace-str ], --replace [ =replace-str ]
こ の オ プ シ ョ ン は 、 replace-str が 指 定 さ れ て い れ ば 、 -I replace-str の 同 義 で あ る 。 引 数 replace-str が 省 略 さ れ て い れ ば 、 -I {} と 同 じ こ と に な り ま す 。 こ の オ プ シ ョ ン は 非 推 奨 で す 。 -I を 使 っ て く だ さ い 。
-L max-lines
1 コ マ ン ド 行 に つ き 最 大 max-lines 行 の (空 行 で は な い ) 入 力 行 を 使 用 し ま す 。 入 力 行 の 行 末 に 空 白 文 字 が 付 い て い る と 、 そ の 行 は 次 の 入 力 行 に 論 理 的 に 続 い て い る こ と に な り ま す 。 -x の 指 定 を 暗 に 含 み ま す 。
-l [ max-lines ], --max-lines [= max-lines ]
-L オ プ シ ョ ン の 同 義 語 で す 。 -L と は 違 っ て 、 max-lines と い う 引 数 を 指 定 す る か ど う か は 任 意 で す 。 引 数 max-lines を 指 定 し な か っ た 場 合 は 、 デ フ ォ ル ト の 1 が 使 用 さ れ ま す 。 POSIX 規 格 で は -L の 方 を 使 う こ と に な っ て い る の で 、 -l オ プ シ ョ ン の 使 用 は お 勧 め で き ま せ ん 。
-n max-args , --max-args = max-args
1 コ マ ン ド 行 に つ き 最 大 max-args 個 の 引 数 を 使 用 し ま す 。 作 成 さ れ た コ マ ン ド ラ イ ン が 、 コ マ ン ド ラ イ ン 長 の 上 限 を 超 過 す る 場 合 は ( -s オ プ シ ョ ン 参 照 )、 max-args よ り 少 な い 引 数 が 使 用 さ れ る こ と に な り ま す 。 た だ し 、 -x オ プ シ ョ ン が 指 定 さ れ て い る と き は 別 で 、 そ の 場 合 は xargs が 終 了 し ま す 。
-P max-procs , --max-procs = max-procs
同 時 に 実 行 す る プ ロ セ ス の 最 大 数 を max-procs に し ま す 。 デ フ ォ ル ト は 1 で す 。 max-procs が 0 で す と 、 xargs は で き る だ け 多 く の プ ロ セ ス を 同 時 に 実 行 し よ う と し ま す 。 -P オ プ シ ョ ン に は 、 -n か -L オ プ シ ョ ン を 併 せ て 使 用 す る べ き で す 。 そ う し な い と 、 お そ ら く exec 関 数 が た っ た 一 回 し か 実 行 さ れ な い こ と に な り ま す 。 xargs の 実 行 中 に 、 そ の プ ロ セ ス に SIGUSR1 シ グ ナ ル を 送 れ ば 、 同 時 に 実 行 す る コ マ ン ド の 数 を 増 や す こ と が で き ま す 。 ま た 、 SIGUSR2 シ グ ナ ル を 送 れ ば 、 そ の 数 を 減 ら す こ と が で き ま す 。 た だ し 、 実 装 が 決 め て い る 上 限 を 越 え て 増 や す こ と は で き ま せ ん し (上 限 は --show-limits を 使 え ば わ か り ま す )、 1 よ り 少 な く も で き ま せ ん 。 xargs は 、 実 行 し て い る コ マ ン ド を 終 了 さ せ る わ け で は あ り ま せ ん 。 実 行 数 を 減 ら す よ う に 命 じ ら れ た と き は 、 単 に 現 在 実 行 中 の コ マ ン ド が 二 つ 以 上 終 了 す る の を 待 ち 、 そ れ か ら 別 の コ マ ン ド を 開 始 し ま す 。
注 意 し て ほ し い の は 、 共 有 リ ソ ー ス に 対 す る 並 列 ア ク セ ス を き ち ん と 管 理 す る の は 、 呼 び 出 さ れ る プ ロ セ ス 側 の 問 題 で あ る と い う こ と で す 。 た と え ば 、 複 数 の プ ロ セ ス が 標 準 出 力 に 書 き 出 そ う と し た 場 合 、 出 力 順 は 不 定 で す (そ し て 混 じ り 合 っ て し ま う こ と が 多 い )。 そ う な ら な い た め に は 、 プ ロ セ ス 同 士 が 何 ら か の 形 で 協 力 し 合 う 必 要 が あ り ま す 。 ロ ッ ク ス キ ー ム (locking scheme) の よ う な も の を 使 う の は 、 そ う し た 問 題 を 避 け る た め の 一 方 法 で す 。 た だ 一 般 に ロ ッ ク ス キ ー ム を 使 っ て も 、 出 力 順 は 適 切 に 保 証 し て く れ る も の の 、 パ フ ォ ー マ ン ス は 低 下 し ま す 。 パ フ ォ ー マ ン ス が 落 ち る の が 嫌 な ら ば 、 単 純 に 各 プ ロ セ ス が そ れ ぞ れ 別 の 出 力 フ ァ イ ル を 作 る よ う に (あ る い は 別 の リ ソ ー ス を 使 う よ う に ) す れ ば よ い で し ょ う 。
-o, --open-tty
コ マ ン ド 実 行 に 先 が け て 、 子 プ ロ セ ス に お い て stdin を /dev/tty と し て 再 オ ー プ ン し ま す 。 こ れ は xargs を 使 っ て 対 話 型 ア プ リ ケ ー シ ョ ン を 実 行 す る 場 合 に 有 用 で す 。
-p, --interactive
コ マ ン ド 行 1 行 ご と に 、 実 行 す る か ど う か を ユ ー ザ ー に 尋 ね る プ ロ ン プ ト を 出 し 、 端 末 か ら 1 行 読 み 込 み ま す 。 コ マ ン ド 行 を 実 行 す る の は 、 返 答 が ‘y’ ま た は ‘Y’ で 始 ま る と き だ け で す 。 自 動 的 に -t が 指 定 さ れ ま す 。
--process-slot-var = name
複 数 の 子 プ ロ セ ス を 同 時 実 行 し て い る と き 、 そ の 各 子 プ ロ セ ス で 環 境 変 数 name に ユ ニ ー ク な 値 を セ ッ ト し ま す 。 値 は 、 子 プ ロ セ ス が 終 了 す る と 、 再 利 用 さ れ ま す 。 こ の 機 能 は 、 た と え ば 、 初 歩 的 な 負 荷 分 散 ス キ ー ム で 利 用 で き ま す 。
-r, --no-run-if-empty
標 準 入 力 に 空 白 し か 含 ま れ て い な い 場 合 は 、 指 定 し た コ マ ン ド を 実 行 し ま せ ん 。 通 常 で は 、 入 力 が 全 く な い 場 合 で も 、 コ マ ン ド が 一 回 は 実 行 さ れ ま す 。 こ の オ プ シ ョ ン は GNU 拡 張 で す 。
-s max-chars , --max-chars =max-chars
1 コ マ ン ド 行 に つ き 最 大 max-chars の 文 字 を 使 用 し ま す 。 こ の 文 字 数 に は 、 指 定 し た コ マ ン ド と initial-arguments 、 そ れ に 各 引 数 文 字 列 の 終 端 を 示 す ヌ ル 文 字 も 含 ま れ ま す 。 指 定 で き る 値 の 上 限 は 、 シ ス テ ム 次 第 で あ り 、 exec 関 数 に 対 す る 引 数 の 最 大 長 か ら 、 現 在 の 環 境 の サ イ ズ と 2048 バ イ ト の 余 裕 領 域 を 引 い た も の で す 。 も し そ の 値 が 128KiB 以 上 だ っ た と き は 、 デ フ ォ ル ト の 値 に は 128KiB が 使 用 さ れ ま す 。 128KiB 未 満 の と き は 、 算 出 さ れ た 上 限 が デ フ ォ ル ト の 値 に な り ま す 。 1KiB は 1024 バ イ ト で す 。 制 限 が よ り 厳 し い 場 合 で も 、 xarg は 自 動 的 に そ れ に 対 応 し ま す 。
--show-limits
コ マ ン ド 行 の 長 さ の 上 限 を 表 示 し ま す 。 コ マ ン ド 行 長 の 上 限 は 、 オ ペ レ ー テ ィ ン グ シ ス テ ム 、 xargs が 設 定 し た バ ッ フ ァ サ イ ズ 、 そ れ に -s オ プ シ ョ ン に よ っ て 決 ま り ま す 。 xargs に コ マ ン ド ラ イ ン 長 の 上 限 の 表 示 以 外 を さ せ た く な い 場 合 は 、 入 力 を /dev/null か ら パ イ プ で xargs に 渡 し て く だ さ い (さ ら に --no-run-if-empty を 指 定 し た 方 が よ い か も し れ ま せ ん )。
-t, --verbose
実 行 す る 前 に 、 コ マ ン ド ラ イ ン を 標 準 エ ラ ー 出 力 に 表 示 し ま す 。
-x, --exit
作 成 さ れ た コ マ ン ド 行 が コ マ ン ド 行 長 の 上 限 を 超 過 し て い た ら ( -s オ プ シ ョ ン を 参 照 )、 終 了 し ま す 。
|
--help |
xargs の オ プ シ ョ ン に つ い て 簡 単 に 説 明 し 終 了 し ま す 。 |
--version
xargs の バ ー ジ ョ ン 番 号 を 表 示 し て 、 終 了 し ま す 。
オ プ シ ョ ン --max-lines ( -L , -l )、 --replace ( -I , -i )、 --max-args ( -n ) は 同 時 に 指 定 す る こ と は で き ま せ ん 。 こ れ ら を 同 時 に 指 定 し た 場 合 、 通 常 xargs は 、 コ マ ン ド 行 上 の 最 後 に 指 定 さ れ た オ プ シ ョ ン を 利 用 し ま す 。 つ ま り 誤 っ て 指 定 さ れ た (最 終 分 よ り も 前 に 指 定 さ れ た ) オ プ シ ョ ン 値 は デ フ ォ ル ト に リ セ ッ ト さ れ ま す 。 さ ら に xargs は 警 告 情 報 を stderr に 出 力 し ま す 。 こ の 仕 様 に は 例 外 が あ り 、 max-args に 対 し て 特 別 な 値 1 (’ -n 1 ’) を 指 定 し た 場 合 、 --replace オ プ シ ョ ン お よ び そ の 別 名 で あ る -I と -i の 後 ろ で あ れ ば 、 max-args は 無 視 さ れ ま す 。 こ れ は 相 反 す る 指 定 に な ら な い か ら で す 。
例
find /tmp -name core -type f -print | xargs /bin/rm -f
/tmp デ ィ レ ク ト リ 以 下 に core と い う 名 前 の フ ァ イ ル を 探 し て 、 そ れ を 消 去 し ま す 。 改 行 や 空 白 を 含 む フ ァ イ ル 名 が あ る と 、 正 し く 動 作 し な い の で 、 注 意 し て く だ さ い 。
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
/tmp デ ィ レ ク ト リ 以 下 に core と い う 名 前 の フ ァ イ ル を 探 し て 、 そ れ を 消 去 し ま す 。 フ ァ イ ル 名 の 処 理 に 当 た っ て は 、 フ ァ イ ル 名 や デ ィ レ ク ト リ 名 に 空 白 や 改 行 が 含 ま れ て い て も 、 適 切 に 扱 わ れ る よ う に し て い ま す 。
find /tmp -depth -name core -type f -delete
/tmp デ ィ レ ク ト リ 以 下 に core と い う 名 前 の フ ァ イ ル を 探 し て 、 そ れ を 消 去 し ま す 。 上 の 例 よ り も こ ち ら の 方 が 効 率 的 で す (な ぜ な ら 、 rm を 実 行 す る た め に fork (2) と exec (2) を 使 わ な い で す み ま す し 、 そ も そ も 、 xargs の プ ロ セ ス を 必 要 と し な い か ら で す )。
cut -d: -f1 < /etc/passwd | sort | xargs echo
シ ス テ ム の 全 ユ ー ザ ー を 列 挙 し た 簡 潔 な リ ス ト を 生 成 し ま す 。
終 了 ス テ ー タ ス
xargs の 終 了 ス テ ー タ ス は 以 下 の と お り で す 。
|
0 |
成 功 し た 。 |
|||
|
123 |
指 定 し た コ マ ン ド の 実 行 が 1-125 の ス テ ー タ ス で 終 了 し た 。 |
|||
|
124 |
指 定 し た コ マ ン ド が 255 の ス テ ー タ ス で 終 了 し た 。 |
|||
|
125 |
指 定 し た コ マ ン ド が シ グ ナ ル に よ っ て kill さ れ た 。 |
|||
|
126 |
指 定 し た コ マ ン ド が 実 行 で き な い 。 |
|||
|
127 |
指 定 し た コ マ ン ド が 見 つ か ら な い 。 |
|||
|
1 |
上 記 以 外 の エ ラ ー が 起 き た 。 |
128 以 上 の 終 了 ス テ ー タ ス は 、 致 命 的 な シ グ ナ ル の せ い で プ ロ グ ラ ム が 止 ま っ た こ と を 示 す た め に 、 シ ェ ル が 使 用 し て い ま す 。
規 格 へ の 準 拠
GNU xargs version 4.2.9 以 来 、 フ ァ イ ル の 論 理 的 な 終 端 を 示 す 指 標 (a logical end-of-file marker) を 持 た な い の が 、 xargs の デ フ ォ ル ト に な っ て い ま す 。 こ の こ と は POSIX (IEEE Std 1003.1, 2004 Edition) で 認 め ら れ て い ま す 。
-l や -i オ プ シ ョ ン は 1997 年 版 の POSIX 規 格 に は 存 在 す る が 、 2004 年 版 の POSIX 規 格 に は 存 在 し ま せ ん 。 従 っ て 、 そ れ ぞ れ -L や -I の 方 を 使 う べ き で す 。
-o オ プ シ ョ ン は POSIX 規 格 を 拡 張 し た も の で あ り 、 BSD と 互 換 性 を 図 る た め の も の で す 。
POSIX 規 格 は 、 実 装 に 当 た っ て 、 exec 関 数 に 対 す る 引 数 の サ イ ズ に 上 限 を 設 け る こ と を 認 め て い ま す 。 そ し て 、 そ の 上 限 は 、 環 境 の サ イ ズ も 含 め て 、 少 な く と も 4096 バ イ ト あ れ ば よ い こ と に な っ て い ま す 。 移 植 性 の あ る ス ク リ プ ト を 書 こ う と 思 っ た ら 、 こ れ よ り 大 き い サ イ ズ を 当 て に し て は い け ま せ ん 。 も っ と も 、 実 際 の 上 限 が そ ん な に 小 さ い 実 装 に 、 筆 者 は 出 会 っ た こ と は あ り ま せ ん 。 --show-limits オ プ シ ョ ン を 使 え ば 、 使 用 中 の シ ス テ ム で 有 効 な 実 際 の 上 限 を 知 る こ と が で き ま す 。
バ グ
xargs を 安 全 に 使 う こ と は で き ま せ ん 。 な ぜ な ら 、 入 力 フ ァ イ ル の 一 覧 を 作 成 す る 時 間 と 、 xargs か ら の 実 行 コ マ ン ド が そ の 一 覧 を 使 用 す る 時 間 と の 間 に 、 必 ず 差 が 発 生 す る た め で す 。 仮 に 、 他 の ユ ー ザ ー が す で に シ ス テ ム に ア ク セ ス し て い た と し て 、 そ の ユ ー ザ ー が 、 そ の 一 瞬 の 隙 に フ ァ イ ル シ ス テ ム を 操 作 し て 、 xargs が 実 行 す る コ マ ン ド の 動 作 を 、 こ ち ら が 意 図 し て い な い フ ァ イ ル に 無 理 矢 理 向 け て し ま う 、 と い っ た こ と が で き て し ま い ま す 。 こ の 議 論 や 、 こ れ に 関 連 す る 問 題 に つ い て は 、 findutils に 含 ま れ る Texinfo 文 書 の 「 Security Considerations」 と い う 章 で も っ と 細 か く 述 べ て い る の で 、 参 照 し て く だ さ い 。 な お 、 find の -execdir オ プ シ ョ ン は 、 よ り 安 全 な 方 法 と し て xargs の 代 わ り に 利 用 さ れ る こ と が よ く あ り ま す 。
-I オ プ シ ョ ン を 使 う と 、 標 準 入 力 か ら 読 み 込 ま れ た 各 行 が 、 内 部 的 に バ ッ フ ァ に 保 存 さ れ ま す 。 つ ま り 、 -I オ プ シ ョ ン を つ け た と き に 、 xargs が 受 け つ け る 入 力 1 行 に は 、 長 さ の 上 限 が あ る と い う こ と で す 。 こ の 制 限 を 回 避 す る に は 、 -s オ プ シ ョ ン を 使 っ て 、 xargs が 使 用 す る バ ッ フ ァ 領 域 の サ イ ズ を 増 や し て 対 処 し ま す 。 も う 1 つ の xargs を 追 加 で 実 行 す れ ば 、 極 端 に 長 い 行 が 発 生 し な い よ う に で き ま す 。 た と え ば 以 下 で す 。
somecommand | xargs -s 50000 echo | xargs -I ’{}’ -s 100000 rm ’{}’
xargs の 1 つ め の 呼 び 出 し で は 、 入 力 行 の 長 さ に 上 限 は あ り ま せ ん 。 こ れ は -I オ プ シ ョ ン を 使 っ て い な い か ら で す 。 xargs の 2 つ め の 呼 び 出 し に は 、 上 限 設 定 が あ り ま す が 、 処 理 で き な く な る よ う な 1 行 は 、 入 っ て こ な い の が 明 ら か で す 。 こ う す る こ と が 理 想 的 な 解 決 法 と い う わ け で は あ り ま せ ん 。 そ れ よ り も 、 -I オ プ シ ョ ン が 長 さ の 制 限 を 設 け な い で い る 方 が 望 ま し い こ と で す 。 だ か ら こ そ 、 こ の 問 題 を 「 バ グ 」 セ ク シ ョ ン で 説 明 し て い る わ け で す 。 な お こ の 問 題 は 、 find (1) の 出 力 で は 発 生 し ま せ ん 。 find は 1 行 に 1 フ ァ イ ル 名 し か 出 力 し な い た め で す 。
バ グ 報 告
GNU findutils
オ ン ラ イ ン ヘ
ル プ :
<https://www.gnu.org/software/findutils/#get-help>
翻 訳 に 関 す る
バ グ 報 告
<https://translationproject.org/team/>
そ の 他 の 問 題 に つ い て GNU Savannah バ グ ト ラ ッ カ ー 経 由 で の 報 告 :
<https://savannah.gnu.org/bugs/?group=findutils>
GNU findutils パ ッ ケ ー ジ の メ ー リ ン グ リ ス ト bug-findutils に お い て 議 論 さ れ て い る 全 般 的 な ト ピ ッ ク :
<https://lists.gnu.org/mailman/listinfo/bug-findutils>
著 作 権
Copyright ©
1990-2022 Free Software Foundation, Inc. License GPLv3+: GNU
GPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the extent
permitted by law.
関 連 項 目
find (1), kill (1), locate (1), updatedb (1), fork (2), execvp (3), locatedb (5), signal (7)
完
全 な ド キ ュ メ
ン ト
<https://www.gnu.org/software/findutils/xargs>
ま た ロ ー カ ル
に お い て は
info
xargs
に よ り 参 照
で き ま す 。