UNIXしま専科

xargsの便利な小技!

投稿日時 2007-7-23 10:04:18
執筆者 unix
 lsコマンドでファイル(ディレクトリ)一覧を出せますよね。(そんなこと知ってるっつうの!)
ファイル名だけを1ファイル名1行に表示したいことって時々ありませんか?

例).
# ls
amanda chargen-udp dbskkd-cdb finger kshell rlogin telnet vmware-authd
amandaidx cups-lpd echo gssftp ktalk rsh tftp
amidxtape daytime echo-udp klogin ntalk rsync time
chargen daytime-udp eklogin krb5-telnet rexec talk time-udp

↓ こんな感じに

amanda
amandaidx
amidxtape
chargen
chargen-udp
cups-lpd

どうやったらこうなるでしょうか?

A).ls --perfile
B).ls | xargs -n 1
C).ls -l | awk '{print $1}'
D).find ./

正解:B

A:--perfileオプションは無い
C:$1が$9だと正解
D:findでは./がファイル名の前に付いてしまう

実はxargsコマンドを問題のように使うことでlsの結果を
1ファイル名1行で表示することができます。

意外と便利なことがあるかもしれませんね。
ファイルの個数数えるときも

# ls | xargs -n 1|wc -l

なんかで数えられますしね。

きっと他にも使い道があるはずです。頭の片隅でも残して置いてください。

■問題■前述の「例」に出したファイル一覧はどのディレクトリでしょうか?
A)./etc
B)./etc/rc5.d
C)./etc/xinet.d
D)./usr/sbin

答え:「おわりに」の中で。




UNIXしま専科にて更に多くのブログを読むことができます。
http://unix-study.com

このブログのURL
http://unix-study.com/modules/weblog/details.php?blog_id=96