「ls -all」が一部のファイルの時間を表示し、他のファイルの年を表示するのはなぜですか?


32

ls -allコマンドを発行すると、一部のファイルまたはディレクトリには年があり、一部には時間がありますか?他の人が時間を表示するのに、なぜ一部の人は年を表示するのですか?時間は、ファイルが作成された時間の代表ですか?

ここに画像の説明を入力してください


15
を使用してい-allます。最後のLは不要であることに注意してください。これallは、「すべて」という単語を表すのではなく、-a(すべてのファイルを表示する)および-l(長いリスト形式)を表すためです。すべて一緒に、ls -alあなたが使用しているものと同じです。
fedorqui

回答:


35

デフォルトでは、ファイルのタイムスタンプは短縮形でリストされ、最近ではないタイムスタンプには「2002年3月30日」のような日付が使用され、最近のタイムスタンプには「3月30日23:45」のような年と日付のない日付が使用されます。以下に詳述するように、この形式は現在のロケールに応じて変更できます。

タイムスタンプは、6か月未満であり、将来の日付ではない場合、最新であると見なされます。今日の日付のタイムスタンプが最近の形式でリストされていない場合、そのタイムスタンプは将来のものです。つまり、ファイルのタイムスタンプに依存するmakeのようなプログラムを壊す可能性のあるクロックスキューの問題がある可能性があります。

ソース:http : //www.gnu.org/software/coreutils/manual/coreutils.html#Formatting-file-timestamps

説明する:

$ for i in {1..7}; do touch -d "$i months ago" file$i; done
$ ls -l
total 0
-rw-r--r-- 1 terdon terdon 0 Sep 21 02:38 file1
-rw-r--r-- 1 terdon terdon 0 Aug 21 02:38 file2
-rw-r--r-- 1 terdon terdon 0 Jul 21 02:38 file3
-rw-r--r-- 1 terdon terdon 0 Jun 21 02:38 file4
-rw-r--r-- 1 terdon terdon 0 May 21 02:38 file5
-rw-r--r-- 1 terdon terdon 0 Apr 21  2015 file6
-rw-r--r-- 1 terdon terdon 0 Mar 21  2015 file7

4
将来の時間も時間ではなく年を表示することに注意してください。これは、クロックが同期していないホスト間でファイルを交換する場合に発生する可能性があります。
カスペルド

24

表示される時間は変更時間です。してくださいノートls -allと同じものであるls -l -aとは異なり、ls --alll例でdoubleを使用する理由はありません。各ファイルの変更時刻を表示する場合は、を使用できますls -al --full-time


4
GNUではls、通常の使用--time-style=long-isoがより便利です。--full-time通常は必要ない小数点の後に、9つの暗号(!)を含む秒を表示します。
パブーク

1
--full-timeを意味する-lので、あなただけを使用することができますls -a --full-time
カスペルド

6

表示しようとしている日付/時刻が過去6か月の場合 ls、日付と時刻を表示します。6か月より前の場合、または将来の場合lsは、日付と年を表示します。

他の回答で述べたように、

  • ls -ll相当しls -l、そして
  • ls -all等価であるls -alに相当する、ls -a -lls -l -a、とls -la

では-lオプション、ls(「すべてはファイルである」ことから、ディレクトリを含む)、ファイルの変更日付/時刻を表示しない限り、

  • -c また、指定されます。その場合、変更時間を表示します。または
  • -u も指定されます。この場合、アクセス時間が表示されます。

詳細については、ls(1)を参照してください。


3

この出力は、最大の情報内容に合わせて調整されています。時刻が現在の時刻に「十分に近い」場合(完全にはわかりませんが、6か月以内に推測します)、年は省略され、代わりに時刻が表示されます。それ以外の場合、年が表示されます。これは主にデフォルトです。何年も前であれば、変更された正確な時刻をあまり気にしていない可能性が高いためです。GNU coreutilsにlsは、--time-styleこれを明示的に制御するオプションがあります。


0

あなたは何かを実現しましたか?それは、10月20日の1時間(今日)に表示されます。つまり、ファイルを最後に変更した時刻が表示されますが、今日ではない他の日には、時刻なしの日付のみが表示されます。

トーマスが答えたように、これはこれではないことがわかりました。私は演method法を使用しようとしましたが、結局正しい結論を得ることが保証されていません。


1
Aug 6 19:50 .configAug 6 19:48 VNCHOWTO
G-Manは「Reinstate Monica」と言います

完璧です、日付を探してポイントをつなぐ演thingをしましたが、必ずしも完璧な結論とは限りません。
ラファエルカンポスヌネス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.