混乱したlsコマンド: "ls -t"対"ls -u"

混乱したlsコマンド: "ls -t"対"ls -u"

Unixでは、ls -lファイルとディレクトリの長いリストが提供されています。 ls -ltまた種類時間でソートされたファイル、つまり最後に変更または変更されたファイル。これはls -lu、長いリストとアクセス時間を提供し、最後のアクセス基準ではなくazでファイルをソートすることとは異なります。アクセス時間に基づいてファイルをソートしたいが、これを行うには、リストを長い形式ls -luls -lut提供し、アクセス時間を印刷し、アクセス時間に基づいてソートする必要があります。

ERGOは、 -t時間、変更時間、またはアクセス時間に基づいてソートすることを意味する必要があり、ERGO-uリストインタビュー時間。アクセス時間ごとにリストおよびソートされるわけではありません。それでは、もはや議論がなければ、-t修正時間ごとにリストすることを意味するようです。そしてソート編集時間をタップします。上記の内容は正しいですか?そうでなければ、私はどこで間違っていますか?

答え1

これlsマニュアルページこれらのオプションを明確にするのに役立ちます。

この-lオプションは出力形式を制御して「長い」リストを生成します。

この-tオプションは変更時間に基づいてソートされます。値はすでに長い形式で存在します。

-uこのオプションは、使用されるオプションによって異なる動作をします。

  1. それ自体はls -uアクセス時間に基づいてソートされます。
  2. この-lオプションを使用すると、アクセス時間が表示されますが、名前でソートされます。この場合、ソートオプションではなく出力修飾子として機能します。
  3. -lとを使用する-tと、接続時間が表示され、それに基づいてソートされます。

この-cオプションはctime属性と同じように機能します。

複雑さは長いリスト形式を変更する必要があるためです。-loグループ情報の抑制、-lG所有者情報の抑制、-lh人間が読める形式でサイズを表示するなど、さまざまなオプションがこの方法で機能します。


GNUスタイルのオプションls手動これを理解しやすくしてください。

-lはい--format=long

-tはい--sort=time

-uはい--time=atime

同じだ。-luつまり--format=long --time=atime、長いリストを表示しますが、デフォルトのmtimeの代わりにatimeを使用します。

そして-ltuはい--format=long --sort=time --time=atime。この例では、atime が表示されソートされます。

答え2

基本的に正しいです。-t「時間による並べ替え」とは、-u「タイムスタンプを使用する」(sort-tまたはディスプレイタイムスタンプを使用する場合-l)を意味します。 POSIXオプションは、タイムスタンプごとのソートを明示的に要求するために使用されない限り、デフォルトの-uソート順序を変更しません。-t

POSIX仕様lsこれには次のテキストが含まれています。

-u

-tソート()または書き込み()には、最後に変更されたファイルの代わりに最後のアクセス時間(XBD <sys / stat.h>を参照)を使用してください-l

ls -uしかし、GNUの人々は次のようにするのが便利だと思います。タイプそれ以外の場合ls -uと出力の間に違いはありませんls(どちらも名前でソートされ、タイムスタンプは表示されません)。これがGNUがls他のシステムとは異なる動作をする理由ですls

lsGNUシステム文書には、次のように要約されています。

-u

with -lt:接続時間に基づいてソートして表示します。 with -l: 接続時間を表示し、名前に基づいてソートします。それ以外の場合は、接続時間に基づいてソートします。

この簡単なテキストで言及されていないものは、他の何にも当てはまりません。似たような-lたとえば、などの出力形式は、-o同様-gにオプションから-nソート効果を削除します。これらのオプションには、GNU マニュアルに「like but, ...」というテキストがあります。-u-l-lls

-cctimeタイムスタンプをソート/表示するためのGNUのオプションは、ls同様の方法で他のオプションによって異なります。

これがGNUがどのようにls機能するかです。1999年からその頃。

lsどの実装を使用しても、長い形式の出力をタイムスタンプでソートするには、atime -t-l -utctime -l -ct、または-l -tmtimeでソートします。

答え3

-t方法タイプ時間別 - 時間フィールドです。

-u変更時間の代わりにアクセス時間を使用することを意味します(表示用)。そして/または並べ替え(該当する場合)

したがって、あなたの理解は正確です。あなたは状況をより複雑で混乱させています。一歩退いて深呼吸をしてみてください。結局のところ、それはそれほど複雑ではないことに気づくでしょう。

PS参考にしてください-t いいえ-l-o(またはなどの同様のオプション-g)はそうではありません。展示するすべての時間フィールド。

関連情報