[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

5. ディレクトリのリストアップ

この章では,lsコマンドとその変形のdirvdirを記述し, それはファイルに関する情報をリストアップします.


5.1 ls: ディレクトリの内容をリストアップ

lsプログラムは,ファイル(の形式で,ディレクトリを含む)に関する情 報をリストアップします.オプションとファイル引数は,通常のものと同様,任 意に混ぜることができます.

オプションの無いコマンドラインのディレクトリ引数に対し,lsはデフォ ルトで,ディレクトリの内容をリストアップし,それは再帰的ではなく, .で始まる名前を持つファイルは除きます.他のオプションの無い引数に 対し,lsはデフォルトで,そのファイル名のみをリストアップします. オプションではない引数が指定されない場合,lsは現在のディレクトリ の内容をリストアップします.

デフォルトで,出力はアルファベット順に出力されます.標準出力が端末の場合, 出力は(垂直方向にソートされた)列になり,制御文字は疑問符として出力されま す.それ以外の場合,出力は1行毎にリストアップされ,制御文字は同様になり ます.

lsはこのような基本的なプログラムなので,それは数年かけて多くのオ プションを蓄積してきました.それらは以下のサブセクションで記述します.そ れぞれのセクションで,オプションはアルファベット順に(大文字小文字を無視 して)リストアップされています.オプションをサブセクションい分けることは 絶対ではなく,それは,1つ以上のlsの処理の局面で影響するためです.

`-g'オプションは受け入れられますが無視され,それはUnixの移植性のた めです.共通のオプション,も参照してください.


5.1.1 リストアップされるファイル

これらのオプションは,lsがリストアップするファイルの情報を決定し ます.デフォルトで,コマンドラインのあらゆるファイルとディレクトリの内容 が表示されます.

` -a'
` --all'

`.'で始まるファイルを含め,ディレクトリの全てのファイルをリストアッ プします.

` -A'
` --almost-all'

`.'と`..'以外の,ディレクトリの全てのファイルをリストアップし ます.

` -B'
` --ignore-backups'

コマンドラインで与えられない限り,`~'で終るファイルをリストアップし ません.

` -d'
` --directory'

ディレクトリの名前のみリストアップし,それはファイルの他の形式と同様で, その内容をリストアップしません.

` -I PATTERN'
` --ignore=PATTERN'

それらがコマンドラインで与えられていない限り,シェルパターン(正規表現で はありません)patternに一致する名前のファイルをリストアップしません. シェルと同様に,ファイル名の最初の`.'は,patternの最初のワイ ルドカードに一致しません.このオプションを複数回与えると便利なときもあり ます.例えば,以下のようにします.

 
$ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'

最初のオプションは,`.'で始まる長さが3文字以上の名前を無視し,2番目 は`..'以外の`.'で始まる全ての2文字の名前を無視し,3番目は `#'で始まる名前を無視します.

` -L'
` --dereference'

長いリストで,シンボリックリンク自身ではなくシンボリックリンクの参照のファ イル情報(例えば,時間や許可)を表示します.

` -R'
` --recursive'

全てのディレクトリの内容を,再帰的にリストアップします.


5.1.2 リストアップされる情報

これらのオプションは,lsが表示する情報に影響します.デフォルトで, ファイル名のみ表示されます.

` -D'
` --dired'

長いリスト(`-l')の書式を用いた場合,主な出力の後に追加して以下を出 力します.

 
//DIRED// beg1 end1 beg2 end2 …

begNendNは,出力のそれぞれのファイル名の始めと終りのバイト 位置を記録する符号無し整数です.これで,たとえスペースや改行といった通常 用いない文字を含むときも,異常な検索をすること無く,Emacsは簡単に名前を 見つけるようになります.

ディレクトリが再帰的(-R)にリストアップされる場合,出力はそれぞれ のサブディレクトリの後に,良く似た行を出力します.

 
//SUBDIRED// format beg1 end1 …

最終的に以下の形式の行を出力します.

 
//DIRED-OPTIONS// --quoting-style=word

wordは引用形式です(see section ファイル名の書式化).

` -G'
` --no-group'

長い書式のディレクトリのリスト表示で,グループ情報の表示を禁止します. (これはGNUではないバージョンのlsではデフォルトで,我々は互換性の ためにこのオプションを提供します.)

` -h'
` --human-readable'

それぞれの大きさに,メガバイトに対する`M'のようなサイズ文字を追加し ます.1000倍ではなく1024倍が使用されます.`M'は1,048,576バイトを意 味します.1000倍を望む場合,`-H'または`--si'オプションを使用し てください.

` -H'
` --si'

それぞれの大きさに,メガバイトに対する`M'のようなサイズ文字を追加し ます.(SIは国際単位系で,それはこれらの文字を接頭辞として定義しています. 1024倍ではなく1000倍が使用されます.`M'は1,000,000バイトを意味しま す.1024倍を望む場合,`-h'または`--human-readable'オプションを 使用してください.

` -i'
` --inode'

それぞれのファイルのinode番号(ファイルシリアル番号とインデックス番号と も呼ばれています)を,ファイル名の左に出力します.(この番号は,特定のファ イルシステム内の,それぞれのファイルを単一のものとして識別します.)

` -l'
` --format=long'
` --format=verbose'

それぞれのファイル名に加えて,ファイル形式,許可,ハードリンク数,所有者 名,バイトのサイズ,そしてタイムスタンプ(デフォルトで編集した時間)を出力 します.6ヵ月以上前の時間や,1時間以上先の時間のファイルについては,タイ ムスタンプは日付の時間の代わりに年を含みます.

リストアップされたそれぞれのディレクトリに対し,`total blocks'という行をファイルに前置し,そこでのblocksは,そのディ レクトリの全てのファイルが占めるディスク全体です.ブロックサイズは,現在 デフォルトで1024バイトですが,これに優先可能です(see section ブロックサイズ). blocksは,それぞれのハードリンクを別々に数えて計算します.これはお そらく欠陥です.

リストアップされる許可は,象徴的なモードでの指定に似ています (see section 象徴的なモード).しかし,lsは,それぞれの許可の設定を複 数のビットを3番目の文字に組み合わせ,以下のようにします.

` s'

setuidやsetgidビットと対応する実行可能ビットが,両方設定されている場合.

` S'

setuidやsetgidビットは設定されているが,対応する実行可能ビットが設定され ていない場合.

` t'

stickyビットとotherの実行可能ビットが両方設定されている場合.

` T'

stickyビットは設定されているが,otherの実行可能ビットが設定されていない 場合.

` x'

実行可能ビットが設定されていて,上記は何も適応されない場合.

` -'

それ以外.

` -o'

長いディレクトリのリストの書式を生成しますが,グループ情報は表示しません. それは,`--no-group'を用いた`--format=long'の使用と同じです. このオプションは,lsの他のバージョンとの互換性のために供給されて います.

` -s'
` --size'

ファイル名の左側に,それぞれのファイルのディスク占有量を出力します.これ は,ファイルが使用しているディスクスペースの総量で,それは通常ファイルサ イズよりわずかに多くなりますが,ファイルに欠陥がある場合は,より小さくな るはずです.

通常ディスクの占有量は1024バイト単位で出力されますが,これに優先すること は可能です(see section ブロックサイズ).

HP-UXシステムからBSDシステムに,NFSでマウントされているファイルに対し, このオプションは,正しい値の半分のサイズを報告します.HP-UXシステムでは, BSDシステムからNFSでマウントされているファイルに対し,正しい値の2倍のサ イズを報告します.これは,HP-UXの欠点のためです.それはHP-UXのls プログラムにも影響します.


5.1.3 出力の並べ替え

これらのオプションは,lsが並べ替える出力の情報の順序を変更します. デフォルトで,並べ替えは文字コードによって行われます(例えば,ASCIIの順番 です).

` -c'

ステータス変更時間(inodeの`ctime')により並べ替えます.長いリストの 書式(`-l')が使用されている場合,編集された時間の代わりにステータス が変更された時間を出力します.

` -f'

主に,`-U'に似ていて--並べ替えしません.ディレクトリに保存されてい るファイルの順番に,それらをリストアップします.しかし,`-a'(すべて のファイルをリストアップ)も利用可能で,(前に`-f'が指定されている場 合)`-l',`--color',そして`-s'は利用不可能です.

` -r'
` --reverse'

並べ替えのあらゆる手法を反転します--例えば,アルファベットの逆順,新し いものを最初,小さいものを最初,またはすべて逆順にリストアップします.

` -S'
` --sort=size'

ファイルサイズで,大きいものを最初にして並べ替えます.

` -t'
` --sort=time'

編集時間(inodeの`mtime')で,新しいものを最初にして並べ替えます.

` -u'

アクセス時間(inodeの`atime')で並べ替えます.長い形式のリスト書式が 使用されている場合,最後にアクセス時間を表示します。

` --time=atime'
` --time=access'

`--sort=time' (`-t')とともに用いたとき,これは`-u'と同じ です.時間を表示するオプション(例えば,`--format=long')とともに用い た場合,最後に編集した時間ではなく,最後にアクセスした時間を出力します.

` --time=ctime'
` --time=status'
` --time=use'

`--sort=time' (`-t')とともに用いた場合,これは`-c'と同じ です.時間を表示するオプション(例えば,`--format=long')とともに用い た場合,それぞれのファイルの最後に編集した時間のではなく,最後にinodeが 変更した時間を出力します.

` -U'
` --sort=none'

並べ替えしません.ディレクトリに保存されている順番にファイルをリストアッ プします.(`-f'が行う,他と関連することは何もしません.) 並べ替えを 行わないことで,目立って速くすることが可能なので,非常に大きなディレクト リをリストアップするとき,これは特に便利です.

` -v'
` --sort=version'

バージョン名と数字で,小さいものを最初にして並べ替えます.それはデフォル トの並べ替えに似ている動作で,それぞれの10進数の並びが,索引/バージョン 番号として数値的に扱われることが期待されます.(See section バージョンの並べ替えの詳細.)

` -X'
` --sort=extension'

ディレクトリの内容を,ファイルの拡張子(最後の`.'の後の文字)で,アル ファベット順に並べ替えます.ファイルの拡張子がないものが最初になります.


5.1.4 バージョンの並べ替えの詳細

バージョンの並べ替えは,ファイル名が索引やバージョン番号を含むことが多い という事実を考慮にいれています.標準的な並べ替え機能は,1文字づつを基本 に比較するため,通常,人々が期待する順序を生成しません.バージョンの並べ 替えは,この問題を提出し,その名前に索引/バージョン番号を伴うファイルを 多く含むディレクトリを眺めるとき特に役に立ちます.

 
      > ls -1            > ls -1v
      foo.zml-1.gz       foo.zml-1.gz
      foo.zml-100.gz     foo.zml-2.gz
      foo.zml-12.gz      foo.zml-6.gz
      foo.zml-13.gz      foo.zml-12.gz
      foo.zml-2.gz       foo.zml-13.gz
      foo.zml-25.gz      foo.zml-25.gz
      foo.zml-6.gz       foo.zml-100.gz

数字の部分にゼロが前置されていることも分数として考慮されることに注意して 下さい.

 
      > ls -1            > ls -1v
      abc-1.007.tgz      abc-1.007.tgz
      abc-1.012b.tgz     abc-1.01a.tgz
      abc-1.01a.tgz      abc-1.012b.tgz

5.1.5 一般的な出力書式

これらのオプションは,出力の外観に影響します.

` -1'
` --format=single-column'

ファイルを1行毎にリストアップします.これは,標準出力が端末でないときの デフォルトです.

` -C'
` --format=vertical'

列で縦方向に並べ替えされてリストアップされます.標準出力が端末の場合,こ れはデフォルトです.dirdプログラムに対し,それは常にデフォ ルトです.GNU lsは,最も少ない行で可能な限り多くのファイルを表示 できるように,列の幅を変更して使用します.

` --color [=when]'

ファイル形式を区別するため使用する色を指定します.whenは省略される, または以下の一つになります.

`--color'を指定しwhenが無いことは,`--color=always'と同 じです.

` -F'
` --classify'
` --indicator-style=classify'

ファイル形式を示す文字を,それぞれのファイル名に追加します.また,実行可 能な標準ファイルに対し,`*'を加えます.ファイル形式表示子は,ディレ クトリに対する`/',シンボリックリンクに対する`@',FIFOに対す る`|',ソケットに対する`='で,標準ファイルは何もありません.

` --full-time'

標準的な省略の経験則を用いるのではなく,完全な時間をリストアップします. 書式は,dateのデフォルトと同じです.これを変更することは不可能で すが,cutで日付文字列を抽出して,結果をdate -dに渡すことが できます.See date invocation: (sh-utils)date invocation section `date invocation' in Shell utilities.

時間出力が秒を出力するので,最も役に立ちます.(Unix ファイルシステムは, 最も近い秒でファイルのタイムスタンプを記録し,そのため,このオプションは 存在するすべての情報を表示します.)例えば,正しくファイルを再生させてい ないMakefileがあるとき,これは役に立つはずです.

` --indicator-style=word'

エントリー名にスタイルword文字表示子を以下のように追加します.

` none'

あらゆる文字表示子を追加しません.これはデフォルトです.

` file-type'

ディレクトリに対し`/',シンボリックリンクに対し`@',FIFOに対 し`|',ソケットに対し`='を追加し,標準ファイルには何も追加しま せん.これは`-p'や`--file-type'オプションと同じです.

` classify'

実行可能な標準ファイルに`*'を加え,それ以外は`file-type'として 動作します.これは,`-F'や`--classify'オプションと同じです.

` -k'
` --kilobytes'

ファイルの大きさを1024バイトブロックで出力し,デフォルトのブロックサイズ (see section ブロックサイズ)に優先します.

` -m'
` --format=commas'

それぞれの行にできるだけ多くフィットするように,`, ' (カンマとスペー ス)で分けて,水平方向にリストアップします.

` -n'
` --numeric-uid-gid'

名前の代わりに,数値のUIDとGIDをリストアップします.

` -p'
` --file-type'
` --indicator-style=file-type'

それぞれのファイル名にファイル形式を示す文字を追加します.これは `-F'に似ていますが,実行可能なものは印を付けません.

` -x format'
` --format=across'
` --format=horizontal'

ファイルを列に,水平にソートしてリストアップします.

` -T cols'
` --tabsize=cols'

それぞれのタブストップがcols列の幅だと考えます.デフォルトは8です. lsは,効率のために出力可能なところではタブを使用します. colsが0の場合はタブを全く使用しません.

` -w'
` --width=cols'

画面がcols列の幅だと考えます.可能な場合,デフォルトは端末の設定で 与えられます.それ以外で,環境変数COLUMNSが設定されている場合,そ れが使用されます.それ以外の場合,デフォルトの80です.


5.1.6 ファイル名の書式化

これらのオプションは,ファイル名自身を出力する方法を変更します.

` -b'
` --escape'
` --quoting-style=escape'

ファイル名の表示不可能な文字を,Cで使用されるような,アルファベットと8進 数のバックスラッシュシーケンスを用いて引用符で囲みます.

` -N'
` --literal'

ファイル名を引用符で囲みません.

` -q'
` --hide-control-chars'

ファイル名の表示不能な文字の代わりに疑問符を出力します.出力が端末の場合 と,プログラムがlsの場合,これはデフォルトです.

` -Q'
` --quote-name'
` --quoting-style=c'

2重引用符でファイル名を囲み,表示不可能な文字をCのように引用符で囲みます.

` --quoting-style=word'

出力名の引用符に形式wordを使用します.wordは以下の一つになり ます.

` literal'

現状のまま名前を出力します.

` shell'

名前にシェルメタ文字を含んでいたり,不明瞭な出力を生じる場合,引用符で囲 みます.

` shell-always'

シェルのため,通常は引用符が不要な場合でも名前を引用符で囲みます.

` c'

C言語の文字列で名前を引用符で囲みます.これは`-Q'や `--quote-name'オプションと同じです.

` escape'

周囲の二重引用符を省略した`c'を引用符として用います.これは, `-b'や`--escape'オプションと同じです.

`--quoting-style'オプションのデフォルト値を,環境変数 QUOTING_STYLEで指定することが可能です.環境変数が設定されていない 場合,デフォルト値は`literal'ですが,このデフォルトは,このパッケー ジの将来のバージョンで`shell'に変更されるかもしれません.

` --show-control-chars'

ファイル名の出力不可能な文字をそのまま出力します.出力が端末の場合やプロ グラムがlsの場合以外では,これがデフォルトです.


5.2 dir: ディレクトリの内容の短いリスト

同じです.すなわち,デフォルトでファイルは列にリストアップされ,縦方向に 並べ替えされ,そして特殊文字はバックスペースエスケープシーケンスで再表現 されます.

See section ls.


5.3 vdir: ディレクトリの内容の冗長なリスト

vdirは(vとしてインストールされるものも),ls -l -bと 同じです.すなわち,デフォルトでファイルは長い書式でリストアップされ,特 殊文字はバックスペースエスケープシーケンスで再表現されます.


5.4 dircolors: lsの色をセットアップ

dircolorsは,ls (とdir等)から出力する色のために端末 を設定するシェルコマンドの順番を出力します.典型的な使用方法は以下の通り です.

 
eval `dircolors [option]… [file]`

fileが指定された場合,dircolorsは,ファイル形式と拡張子に対 して使用する色を決定するために,それを読み込みます.それ以外の場合,前もっ てコンパイルされたデータベースが使用されます.これらのファイルの書式の詳 細のため,`dircolors --print-database'を実行してください.

出力は,LS_COLORS環境変数を設定するためのシェルコマンドです.コマ ンドラインで使用するシェル構文を指定することが可能で,そうでなければ dircolorsSHELL環境変数の値から判別します.

プログラムは以下のオプションも受け入れます.共通のオプション,も参照 してください.

` -b'
` --sh'
` --bourne-shell'

Bourneシェルコマンドを出力します.SHELL環境変数が設定されていて, `csh'や`tcsh'で終わらない場合,これはデフォルトです.

` -c'
` --csh'
` --c-shell'

Cシェルコマンドを出力します.SHELLが`csh'や`tcsh'で終わ る場合,これがデフォルトです.

` -p'
` --print-database'

組み込みデフォルトカラー設定データベースを出力します.この出力は,それ自 身有効な設定ファイルで,可能性をかなり記述しています.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.