Previous: Formatting file timestamps, Up: ls invocation [Contents][Index]
以下のオプションは、ファイル名の表示方法を変更する。
ファイル名中の非表示文字 (nongraphic characters) を、C 言語で使うような、 バックスラッシュにアルファベットや 8 進数を続ける方法を使用して、クォートする。
ファイル名をクォートしない。とは言え、ls
では、出力先が端末の場合は、
--show-control-chars が指定されていないかぎり、
非表示文字を疑問符として表示するぐらいのことは行う。
ファイル名中の非表示文字に代えて、疑問符を表示する、この動作は、
出力先が端末で、プログラムが ls
の場合のデフォルトである。
(訳注: このオプションの現在の動作は変わっているかもしれない。
すなわち、非表示文字を疑問符ではなく、‘$''’ という書式で表示するかもしれない。
--quoting-style の説明の末尾の訳注もご覧になっていただきたい。)
ファイル名をダブル・クォートで囲み、非表示文字を C 言語と同じやり方でクォートする。
ファイル名などの文字列には、通常使われない文字が含まれているかもしれない。 このオプションを指定すると、word というスタイルを使って、 そうした文字列をクォートすることになる。 word は、以下に挙げるものの一つでなければならない。
文字列に手を加えず、そのまま出力する。これは、-N や --literal オプションと同じである。
文字列にシェルのメタ文字がある場合や、出力が誤解を招くものになりそうな場合に、
シェル向けのクォートを施す。このクォート方法は、bash
のような
POSIX 互換のシェルにはふさわしいものだが、
csh
のような非互換のシェルでは、必ずしもうまく働くとはかぎらない。
普通ならクォートが不要な場合でも、文字列にシェル向けのクォートを施す。
‘shell’ に似ているが、非表示文字のクォーティングに POSIX 提唱の ‘$''’ という書式を使用する。ほとんどのシェルに適している。
‘shell-escape’ に似ているが、普通ならクォートが不要な場合でも、 文字列にクォートを施す。
C 言語の文字列リテラルをクォートするときのように、文字列をクォートする。 文字列をダブル・クォートで囲むことも行う。 これは、-Q や --quote-name オプションと同じである。
C 言語の文字列リテラルをクォートするときのように、文字列をクォートする。 ただし、文字列をダブル・クォートで囲むことはしない。 これは、-b や --escape と同じである。
C 言語の文字列リテラルをクォートするときのように、文字列をクォートする。 ただし、文字列を囲む引用符には、ロケールにふさわしいものを使う。
C 言語の文字列リテラルをクォートするときのように、文字列をクォートする。 ただし、文字列を囲む引用符には、ロケールにふさわしいものを使い、 さらに、デフォルトの C ロケールで言うと、"like this" ではなく、 'like this' のようにクォートを行う。この方が見栄えのよいディスプレイが多い。
--quoting-style オプションのデフォルト値は、環境変数
QUOTING_STYLE
によって指定することができる。
この環境変数が設定されていない場合、デフォルトの値は、出力先が端末のときは
‘shell-escape’ であり、端末以外のときは ‘literal’ である。
(訳注: 上記の説明からは、デフォルトの端末に対する出力のスタイルは、
‘shell-escape’ であるように読める。しかし、--hide-control-chars
の説明や、ls
の章の冒頭では、非表示文字を疑問符として表示するのが、
デフォルトの端末に対する出力だと言っている。info マニュアルの説明に少し混乱があり、
部分的に古い記述が残っているらしい。実のところ、coreutils
の開発元では、バージョン 8.25 あたりから、デフォルトの端末に対する出力を
--quoting-style=shell-escape にしている。
たとえば、ファイル名にタブが含まれている場合、ls
は ‘aaa?bbb’ ではなく ‘'aaa'$'\t''bbb'’
のように端末に表示するのである。しかし、ディストリビューションによっては、
バージョン 8.26 でも、デフォルトの端末に対する出力を
--quoting-style=literal にしていることもある。
その方が見やすいかもしれないので、それも一見識だろう。
ご自分のところではどうなっているか、一度お確かめになっておくとよい。)
ファイル名中の非表示文字に手を加えず、そのまま出力する。
この動作は、出力先が端末ではない場合や、プログラムが ls
ではない場合のデフォルトである。