Tại sao, ls -tất cả thời gian hiển thị cho một số tệp nhưng chỉ năm cho những người khác?


32

Nếu bạn phát ls -alllệnh, một số tệp hoặc thư mục có năm và một số có thời gian? Tại sao một số hiển thị năm trong khi những người khác hiển thị thời gian? Là đại diện thời gian của thời gian các tập tin được tạo ra?

nhập mô tả hình ảnh ở đây


15
Bạn đang sử dụng -all. Lưu ý L cuối cùng là thừa, bởi vìall không có nghĩa là từ "tất cả" mà là -a(hiển thị tất cả các tệp) và -l(định dạng danh sách dài). Tất cả cùng nhau, ls -algiống như những gì bạn đang sử dụng.
fedorqui

Câu trả lời:


35

Theo mặc định, dấu thời gian của tệp được liệt kê ở dạng viết tắt, sử dụng ngày như '30 tháng 3 năm 2002' cho các dấu thời gian không gần đây và ngày không có năm và thời gian như '30 tháng 3 23:45' cho dấu thời gian gần đây. Định dạng này có thể thay đổi tùy thuộc vào miền địa phương hiện tại như chi tiết bên dưới.

Dấu thời gian được coi là gần đây nếu nó dưới sáu tháng tuổi và không có ngày trong tương lai. Nếu dấu thời gian ngày hôm nay không được liệt kê ở dạng gần đây, dấu thời gian là trong tương lai, điều đó có nghĩa là bạn có thể gặp sự cố lệch đồng hồ có thể phá vỡ các chương trình như làm cho dấu thời gian của tệp.

Nguồn: http://www.gnu.org/software/coreutils/manual/coreutils.html#Formatted-file-timestamp

Để minh họa:

$ 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
Đáng lưu ý rằng thời gian trong tương lai cũng sẽ hiển thị năm chứ không phải thời gian. Điều này có thể xảy ra nếu bạn trao đổi các tệp giữa các máy chủ nơi đồng hồ không đồng bộ.
kasperd

24

Thời gian đại diện là thời gian sửa đổi. Xin lưu ý rằng đó ls -alllà điều tương tự ls -l -a, khác với ls --all. Không có lý do để sử dụng gấp đôi ltrong ví dụ của bạn. Nếu bạn muốn xem thời gian sửa đổi cho mỗi tệp, bạn có thể sử dụng ls -al --full-time.


4
Trong GNU lsđể sử dụng bình thường --time-style=long-isocó thể hữu ích hơn. --full-timehiển thị giây bao gồm chín mật mã (!) sau dấu thập phân thường không cần thiết.
pabouk

1
--full-timengụ ý -l, vì vậy bạn chỉ có thể sử dụng ls -a --full-time.
kasperd

6

Nếu ngày / giờ mà nó đang cố hiển thị là trong sáu tháng qua, hãy lshiển thị ngày và giờ. Nếu lâu hơn sáu tháng - hoặc nếu trong tương lai - lssẽ hiển thị ngày và năm.

Như đã nêu trong các câu trả lời khác,

  • ls -lltương đương với ls -l, và
  • ls -alltương đương với ls -al, tương đương với ls -a -l, ls -l -a, và ls -la.

Với -ltùy chọn, lshiển thị ngày / giờ sửa đổi của tệp (bao gồm cả thư mục, vì "mọi thứ đều là tệp"), trừ khi

  • -c cũng được chỉ định, trong trường hợp nó hiển thị thời gian thay đổi, hoặc
  • -u cũng được chỉ định, trong trường hợp nó hiển thị thời gian truy cập.

Xem ls (1) để biết thêm thông tin.


3

Đầu ra này được điều chỉnh cho nội dung thông tin tối đa: khi thời gian "đủ gần" với thời gian hiện tại (không hoàn toàn chắc chắn, nhưng tôi đoán trong vòng sáu tháng), năm được thay thế và thời gian trong ngày được hiển thị. Nếu không, năm được hiển thị. Đây là mặc định chủ yếu là vì bạn có thể không quan tâm nhiều đến thời gian chính xác của một thứ gì đó đã được sửa đổi, nếu thời điểm đó là nhiều năm trước. GNU coreutils ls--time-styletùy chọn, để kiểm soát điều này một cách rõ ràng.


0

Bạn đã nhận ra điều gì chưa? Nó chỉ xuất hiện vào giờ ngày 20 tháng 10, tức là ngày hôm nay, điều đó có nghĩa là nó sẽ hiển thị lần cuối cùng bạn sửa đổi tệp, nhưng, trong những ngày khác không phải hôm nay, nó sẽ chỉ hiển thị ngày mà không có thời gian.

Hóa ra đó không phải là điều này, như Thomas đã trả lời. Tôi chỉ cố gắng sử dụng phương pháp khấu trừ, không yên tâm để có một kết luận chính xác sau tất cả.


1
Aug 6 19:50 .config, Aug 6 19:48 VNCHOWTO.
G-Man nói 'Phục hồi Monica'

Hoàn hảo, tôi chỉ làm một điều khấu trừ tìm kiếm ngày và kết nối các điểm, không thể luôn luôn là một kết luận hoàn hảo.
Rafael Campos Nunes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.