Xargs
[Wikipedia|▼Menu]

xargs(エックスアーグズ)は、UNIXオペレーティングシステムに用意されているコマンドで、標準入力を読み込み、それを引数として指定したコマンドを実行する。
概要

xargs は、改行等で区切られた標準入力を読み込み、空白で区切られた1行の文字列へ加工し、それを引数として指定したコマンドへ渡して実行させる。% (echo Bravo.txt ; echo Charlie.txt) 。xargs -- chmod a-x Alpha.txt

というコマンドは次のものと等価である。% chmod a-x Alpha.txt Bravo.txt Charlie.txt

上記の例は echo で生成させたファイルパスを xargs に与えるものだが、find コマンドで階層的に検索して取得したファイルパスを xargs に与えることもできる。% find path -type f -name '*.txt' 。xargs -- chmod a-x

ただし、find コマンドが出力するファイルパスのリストはとても長くなる場合がある。xargs コマンドが内部的に発生させる chmod コマンドの1行が長すぎることになり、chmod コマンド実行失敗する。

find コマンドが例えば200個のファイルパスを出力した場合、xargs が内部的に生成する chmod コマンドの1行はこんな感じになる。 % chmod a-x filepath1 filepath2 … filepath200

この場合、xargs が内部的に生成した chmod コマンドを実行することは出来ないかもしれない。

ただし、発生させるコマンドがこの例のように chmod コマンドであれば、内部的に発生させるコマンドの長さを調整する機能を用いることで回避できるだろう。% find path -type f -name '*.txt' 。xargs -n 3 -- chmod a-x

この例では、xargs は find コマンドが出力した200個のファイルパスを3個ごとに(3個に満たない場合はその個数だけで)chmod を呼び出す。% chmod a-x filepath1 filepath2 filepath3% chmod a-x filepath4 filepath5 filepath6  :% chmod a-x filepath199 filepath200

もとのコマンドとは異なりはするが、find が出力したファイルを全部のパーミッションを変更するという目的は果たせる。

ただ、このような方法が使えるかどうかは内部的に発生させるコマンド次第である。chmod でなく、例えば tar コマンドの場合は使えない。

xargs コマンドはしばしばたくさんのシェルバッククォート機能と同じ機能を持っている。しかし、より柔軟で、入力に空白や特殊文字を含む場合にはしばしばより安全でもある。
脚注
関連項目

GNU parallel

外部リンク

Manpage of XARGS
GNU 版。JM Project

xargs(1) man page(SunOS リファレンスマニュアル)










Unixコマンド
ファイルとファイルシステム管理

cat

chattr(英語版)

chmod

chown

chgrp

cksum

cmp

cp

dd

du

df(英語版)

file

fsck

fuser(英語版)

ln

ls

lsof

mkdir

mount

mv

pax

pwd

rm

rmdir

size

split

tee

touch

type(英語版)

umask(英語版)

プロセス管理

at

bg

chroot

cron

fg

kill

killall

nice

pgrep

pidof

pkill

ps

pstree(英語版)

reboot

shutdown

time

top

ユーザ管理/環境

clear

env

exit

finger

history(英語版)

id

logname(英語版)

mesg

passwd

su

sudo

uptime

talk

tput(英語版)

uname

w

wall

who

whoami

write

テキスト処理

awk

banner

basename

comm(英語版)

csplit(英語版)

cut

diff

dirname

ed

ex(英語版)

fmt

fold(英語版)

head

iconv

join(英語版)

less

m4

more

nkf

nl

paste(英語版)

patch

printf(英語版)

read(英語版)

sed

sort

spell(英語版)

strings

tail

tr

troff

uniq

vi

wc

xargs

yes

シェルビルトイン

alias

cd

echo

test(英語版)

unset

wait

通信

dig

host(英語版)

ifconfig

inetd

ip (iproute2)

netcat

netstat

nslookup

ping

rdate(英語版)

rlogin

route

ssh

traceroute

検索

find

grep

locate(英語版)

whatis(英語版)

whereis(英語版)

マニュアル

apropos(英語版)

help(英語版)

man

ソフトウェア開発

ar

ctags

lex

make

nm

strip(英語版)

yacc

その他

bc

dc

cal

date

expr

false

lp(英語版)

lpr

od

sl

sleep

stty

true

tty



Category:UNIXのソフトウェア

UNIXユーティリティの一覧


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:10 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef