[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
この章では,ls
コマンドとその変形のdir
と
vdir
を記述し,それはファイルに関する情報をリストアップします.
10.1 ls : ディレクトリの内容をリストアップ | List directory contents. | |
10.2 dir : ディレクトリの内容の短いリスト | Briefly ls. | |
10.3 vdir : ディレクトリの内容の冗長なリスト | Verbosely ls. | |
10.4 dircolors : ls の色をセットアップ | Color setup for ls, etc. |
ls
: ディレクトリの内容をリストアップ
ls
プログラムは,ファイル(のすべての形式で,ディレクトリを含
む)に関する情報をリストアップします.オプションとファイル引数は,通常
のものと同様,任意に混ぜることが可能です.
オプションの無いコマンドラインのディレクトリ引数に対し,ls
は
デフォルトで,ディレクトリの内容をリストアップし,それは再帰的ではなく,
`.'で始まる名前を持つファイルは除外しています.他のオプションの無
い引数に対し,ls
はデフォルトで,そのファイル名のみをリストアッ
プします.オプションではない引数が指定されない場合,ls
は現在
のディレクトリの内容をリストアップします.
デフォルトで,出力はアルファベット順に出力され,それはロケールの設定に 影響されます.(2) 標準出力が端末の場合,出力は(垂直方向にソートされた)列になり,制御文字 は疑問符として出力されます.それ以外の場合,出力は一行ごとにリストアッ プされ,制御文字はそのままになります.
ls
はあまりに基本的なプログラムなので,数年かけて多くのオプショ
ンを蓄積してきました.それらは以下のサブセクションで記述します.それぞ
れのセクションで,オプションはアルファベット順に(大文字小文字を無視し
て)リストアップされています.オプションをサブセクションに分けることは
絶対ではなく,それは,一つ以上のls
の処理の局面に影響するため
です.
2. 共通のオプションも参照してください.
10.1.1 リストアップされるファイル | ||
10.1.2 リストアップされる情報 | ||
10.1.3 出力の並べ替え | ||
10.1.4 バージョンの並べ替えの詳細 | ||
10.1.5 一般的な出力書式 | ||
10.1.6 ファイルのタイムスタンプの書式化 | ||
10.1.7 ファイル名の書式化 |
これらのオプションは,ls
がリストアップするファイルの情報を決
定します.デフォルトで,コマンドラインのあらゆるファイルとディレクトリ
の内容が表示されます.
$ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*' |
最初のオプションは,`.'で始まる長さが3文字以上の名前を無視し,二 番目は`..'以外の`.'で始まる全ての2文字の名前を無視し,三番目 は`#'で始まる名前を無視します.
これらのオプションは,ls
が表示する情報に影響します.デフォル
トで,ファイル名のみ表示されます.
//DIRED// beg1 end1 beg2 end2 ... |
begNとendNは,出力のそれぞれのファイル名の始めと終りのバイ ト位置を記録する符号無し整数です.これで,たとえスペースや改行といった 通常用いない文字を含むときも,異常な検索をすることなく,Emacsで簡単に 名前を見つかるようになります.
ディレクトリが再帰的(`-R')にリストアップされる場合,出力はそれ ぞれのサブディレクトリの後に,良く似た行を出力します.
//SUBDIRED// beg1 end1 ... |
最終的に以下の形式の行を出力します.
//DIRED-OPTIONS// --quoting-style=word |
以下は実際の例です.
$ mkdir -p a/sub/deeper a/sub2 $ touch a/f1 a/f2 $ touch a/sub/deeper/file $ ls -gloRF --dired a a: total 8 -rw-r--r-- 1 0 Nov 9 18:30 f1 -rw-r--r-- 1 0 Nov 9 18:30 f2 drwxr-xr-x 3 4096 Nov 9 18:30 sub/ drwxr-xr-x 2 4096 Nov 9 18:30 sub2/ a/sub: total 4 drwxr-xr-x 2 4096 Nov 9 18:30 deeper/ a/sub/deeper: total 0 -rw-r--r-- 1 0 Nov 9 18:30 file a/sub2: total 0 //DIRED// 55 57 98 100 141 144 186 190 252 258 327 331 //SUBDIRED// 2 3 195 200 263 275 335 341 //DIRED-OPTIONS// --quoting-style=literal |
上記の`//DIRED//'行のオフセットの組が,以下の名前`f1', `f2',`sub',`sub2',`deeper',`file'を分離し ていることに注意して下さい.`//SUBDIRED//'行のオフセットは,以下 のディレクトリ名`a',`a/sub',`a/sub/deeper', `a/sub2'を分離しています.
以下は,五番目の項目名を抽出する方法,`deeper'の例で,対応するオ フセットの組は,252と258です.
$ ls -gloRF --dired a > out $ dd bs=1 skip=252 count=6 < out 2>/dev/null; echo deeper |
上記のリストには,`deeper'の項目に対してスラッシュが後置されてい
ますが,オフセットは,最後のスラッシュを用いていない名前を選択している
ことに注意して下さい.しかし,ls
を
`--escape'(`-b') のようなオプションとともに
`--dired'を用いて呼び出し,特殊文字を含むファイル名を処理する場
合,バックスラッシュが含まれることに注意して下さい.
$ touch 'a b' $ ls -blog --dired 'a b' -rw-r--r-- 1 0 Nov 9 18:41 a\ b //DIRED// 40 44 //DIRED-OPTIONS// --quoting-style=escape |
引用の印(例えば`--quoting-style=c')を追加して,引用形式を使用し
ている場合,オフセットには引用の印が含まれます.そのため,ユーザが環境
変数QUOTING_STYLE
で,引用形式を選択している可能性があることに注
意して下さい.このため,`--dired'を使用しているアプリケーション
では,明示的にコマンドラインで`--quoting-style=literal'オプショ
ン(`-N'または`--literal')を指定する,またはエスケープさ
れた名前のパーサを用意しておいて下さい.
ls
ではデフォルトで,我々
は互換性のためにこのオプションを提供します.)
通常,サイズは句読点を用いずバイト数を出力しますが,これは優先可能です (see section 2.3 ブロックサイズ).例えば,`-h'では,人間が読み易い省略した ものを出力し,`--block-size="'1"'は,現在のロケールで千単位で分離 してバイト数を出力します.
リストアップされているそれぞれのディレクトリに対し,`total blocks'という行をファイルに前置し,そこでのblocksは,その ディレクトリの全てのファイルに対する全体的なディスク占有量です.ブロッ クサイズは,現在デフォルトで1024バイトですが,これに優先させることが可 能です(see section 2.3 ブロックサイズ).blocksは,それぞれのハードリンクを別々 に数えて計算します.これはおそらく欠陥です.
リストアップされる許可は,象徴的なモードでの指定に似ています
(see section 26.2 象徴的なモード).しかし,ls
は,それぞれの許可の設定
を複数のビットを三番目の文字に組み合わせ,以下のようにします.
許可ビットに続くものは,ファイルに適用するアクセス手法の変更を指定する 単一の文字です.文字がスペースのとき,アクセス手法の変更はありません. 印刷可能な文字(例えば`+')のとき,そのような手法があります.
通常ディスクの占有量は1024バイト単位で出力されますが,これに優先させる ことが可能です(see section 2.3 ブロックサイズ).
HP-UXシステムからBSDシステムに,NFSでマウントされているファイルに対し,
このオプションは,正しい値の半分のサイズを報告します.HP-UXシステムで
は,BSDシステムからNFSでマウントされているファイルに対し,正しい値の2
倍のサイズを報告します.これは,HP-UXの欠点のためです.それはHP-UXの
ls
プログラムにも影響します.
これらのオプションは,ls
が並べ替える出力の情報の順序を変更し
ます.デフォルトで,並べ替えは文字コードによって行われます(例えば,
ASCIIの順番です).
バージョンの並べ替えは,ファイル名が索引やバージョン番号を含むことが多 いという事実を考慮にいれています.標準的な並べ替え機能は,一文字づつを 基本に比較するため,通常,人々が期待する順序を生成しません.バージョン の並べ替えは,この問題を提出し,その名前に索引/バージョン番号を伴うファ イルを多く含むディレクトリを眺めるとき特に役に立ちます.
> 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 |
これらのオプションは,出力の外観に影響します.
dir
とd
プログラムに対し,それは
常にデフォルトです.GNU ls
は,最も少ない行で可能な限り
多くのファイルを表示できるように,列の幅を変更して使用します.
more
やless
の様なページャ
にパイプで渡すと,通常読むことができない結果を生成します.しかし,
more -f
を使用すると動作するでしょう.
ls
は,効率のために出力可能なところではタブを使用します.
colsが0の場合はタブを全く使用しません.
COLUMNS
が設定されている場合,
それが使用されます.それ以外の場合,デフォルトの80です.
デフォルトで,ファイルのタイムスタンプは短縮した様式でリストアップされ ます.ほとんどのロケールで`2002-03-30 23:45'のようなタイムスタン プが使用されます.しかし,デフォルトのPOSIXロケールでは,昔 のタイムスタンプに対し`Mar 30 2002'のような日付を使用し,最近 のタイムスタンプに対し,`Mar 30 23:45'のように年が無い日付と時間 を使用します.
タイムスタンプは,六カ月未満のものを最近のもの(recent)と考え,未
来のものは日付がつきません.タイムスタンプが今日の場合は,最近のものの
形式でリストアップされず,タイムスタンプが未来のものは,おそらく時間の
歪みの問題があることを意味し,make
のようにファイルのタイムス
タンプに依存しているプログラムでは問題になる可能性があります.
以下のオプションで,ファイルのタイムスタンプを出力する方法を変更します.
date
の書式化引数のように解釈されます(see section 21.1 date
: システムの日付と時間を出力または設定).例えば,`--time-style="+%Y-%m-%d %H:%M:%S"'で
ls
は`2002-03-30 23:45:56'のようにタイムスタンプをリスト
アップします.date
同様,formatの解釈ではLC_TIME
ロケールカテゴリの影響を受けます.
formatに二つの書式化文字列が,改行で分けられて存在する場合,前者 は最近のものではないファイルに使用され,後者は最近のファイルに使用され ます.出力列を並べたい場合,二つの書式の一つにスペースを挿入する必要が あるかもしれません.
オペレーティングシステムで利用可能なすべての情報を含んでいる時間の出力
になるので,これは役に立ちます.例えば,ファイルが最新かどうかを決定す
るため,GNU make
は完全なタイムスタンプを使用するの
で,make
の動作を解釈する助けとなります.
ls
の出力は伝統的な80列の出
力行に適しています.以下の二つのls
の呼び出しは等価です.
newline=' ' ls -l --time-style="+%Y-%m-%d $newline%m-%d %H:%M" ls -l --time-style="iso" |
LC_TIME
ロケールカテゴリはタイムスタンプの書式を指定します.デフォ
ルトのPOSIXロケールは,`Mar 30 2002'と`Mar 30
23:45'のようなタイムスタンプを使用します.このロケールでは,以下の二つ
のls
の呼び出しは等価です.
newline=' ' ls -l --time-style="+%b %e %Y$newline%b %e %H:%M" ls -l --time-style="locale" |
それ以外のロケールでは動作は異なります.例えばドイツのロケールでは, `--time-style="locale"'は`--time-style="+%e. %b %Y $newline%e. %b %H:%M"'と等価で,`30. M@"ar 2002 'と `30. M@"ar 23:45'のようなタイムスタンプを生成するでしょう.
LC_TIME
ロケールがPOSIXの場合,タイムスタンプを
POSIXロケールで,それ以外ではstyleのタイムスタンプでリ
ストアップします.例えば,デフォルトのスタイル`posix-long-iso'で
は,POSIXロケールのときは,`Mar 30 2002'と`Mar
30 23:45'のようなタイムスタンプで,それ以外では`2002-03-30 23:45'
のようなタイムスタンプでリストアップします.
`--time-style'オプションのデフォルト値を,環境変数
TIME_STYLE
を用いて指定することが可能です.TIME_STYLE
が設定
されていない場合,デフォルトのスタイルは`posix-long-iso'です.
GNU Emacs 21とそれ以降では,ISOの日付をパースする
ことは可能ですが,それより古いEmacsのバージョンではそうではないので,
古いバージョンのEmacsを使用していて,POSIX以外のロケールを指
定している場合,`TIME_STYLE="locale"'を設定する必要があるかもしれ
ません.
これらのオプションは,ファイル名自身を出力する方法を変更します.
ls
の場合,これはデフォルトです.
`--quoting-style'オプションのデフォルト値を,環境変数
QUOTING_STYLE
で指定することが可能です.環境変数が設定されていな
い場合,デフォルト値は`literal'ですが,このデフォルトは,このパッ
ケージの将来のバージョンで`shell'に変更されるかもしれません.
ls
の場合以外では,これがデフォルトです.
dir
: ディレクトリの内容の短いリスト
dir
(とd
としてインストールされるもの)は,ls -C
-b
と同じです.すなわち,デフォルトでファイルは列にリストアップされ,
縦方向に並べ替えされ,そして特殊文字はバックスペースエスケープシーケン
スで再表現されます.
See section ls
.
vdir
: ディレクトリの内容の冗長なリスト
vdir
は(v
としてインストールされるものも),ls -l
-b
と同じです.すなわち,デフォルトでファイルは長い書式でリストアップ
され,特殊文字はバックスペースエスケープシーケンスで再表現されます.
dircolors
: ls
の色をセットアップ
dircolors
は,ls
(とdir
等)から出力する色
のために端末を設定する連続したシェルコマンドを出力します.一般的な使用
方法は以下の通りです.
eval `dircolors [option]... [file]` |
fileが指定されている場合,dircolors
は,ファイル形式と
拡張子に対して使用する色を決定するために,それを読み込みます.それ以外
の場合,前もってコンパイルされたデータベースが使用されます.これらのファ
イルの書式の詳細のため,`dircolors --print-database'を実行してく
ださい.
出力は,LS_COLORS
環境変数を設定するためのシェルコマンドです.コ
マンドラインで使用するシェル構文を指定することが可能で,そうでなければ
dircolors
はSHELL
環境変数の値から判別します.
プログラムは以下のオプションも受け入れます.2. 共通のオプションも参照 してください.
SHELL
環境変数が設定されていて,
`csh'や`tcsh'で終わらない場合,これはデフォルトです.
SHELL
が`csh'や`tcsh'で終
わる場合,これがデフォルトです.
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |