Hiển thị năm trong khi liệt kê các tập tin trong thư mục hiện tại


58

Tôi đang làm việc trên một máy chủ Red Hat. Các lệnh ls -lhoặc llcho tôi ngày và thời gian trong định dạng +"%b %-d %H:%M".

Tôi muốn liệt kê các tệp theo cách mà năm mà mỗi tệp được tạo sẽ xuất hiện trong ngày.

Làm thế nào là có thể?


không tôi không nghĩ rằng tôi đã thử "ls -lT" nó không được tìm thấy
WAEL

1
ls -lTdành cho mac osx
Kris Roofe

1
Nói chung, Unix không theo dõi thời gian tạo tệp và thậm chí khi có, lsthông thường , không có cách nào để hiển thị tệp. Vì vậy, nói chung, điều này là không thể.
G-Man nói 'Phục hồi Monica'

Câu trả lời:


86

Bạn có thể sử dụng man lsvà ở đây bạn có thể tìm thấy --time-styletham số. Hoặc bạn có thể sử dụng:

ls --full-time.


1
@bob: Hoàn toàn đồng ý với Turco. Nếu bạn không làm điều đó, không ai sẽ bận tâm về việc trả lời câu hỏi của bạn.
Hiệp sĩ bóng đêm

5
Ví dụ cho phong cách thời gianls -l --time-style=+%F
sobi3ch

1
Đối với những người đã llthiết lập ls -lahoặc một cái gì đó khác, ll --full-timecũng làm việc.
Meetai.com

8

ls -lsẽ hiển thị tháng và năm - kể từ , theo trang man của BSD: Nếu thời gian sửa đổi của tệp là hơn 6 tháng trong quá khứ hoặc tương lai, thì năm sửa đổi cuối cùng được hiển thị thay cho các trường giờ và phút .

Vì vậy, để đảm bảo năm đó sẽ luôn được hiển thị, hãy sử dụng:

ls --time-style=long-iso (GNU / Linux)

ls -lT sẽ hiển thị thông tin thời gian hoàn thành trong BSD (MacOS)


6

Vì bạn đã hỏi trong năm, ls -laclà một điều dễ nhớ nếu như tôi, bạn sử dụng ls -lamọi lúc. Thời gian ccung cấp cho bạn thời gian sẽ hiển thị một năm nếu đó không phải là năm hiện tại hoặc giờ và phút nếu có.


Tôi thích điều này. Ít tiếng ồn hơn ở đầu ra và chỉ có một chữ cái cần nhớ trong tương lai.
Eric

1
Điều này dường như thay đổi hành vi lsđể cập nhật thay đổi chứ không phải là mặc định ngày sửa đổi .
Mateen Ulhaq

2
ls -lhiển thị ngày và giờ cho các ngày trong sáu tháng qua và ngày và năm cho các ngày khác. ctime có thể trong sáu tháng qua nhiều như mtime (ngày sửa đổi) có thể, vì vậy ls -laccó thể hiển thị thời gian (thay vì năm) nhiều nhất ls -lacó thể. Bên cạnh đó, như Mateen Ulhaq chỉ ra, ls -lackhông hiển thị cùng ngày ls -la. Câu trả lời này là sai.
G-Man nói 'Phục hồi Monica'

2
Làm thế nào trên thế giới này câu trả lời này đã nhận được bảy phiếu bầu?
G-Man nói 'Phục hồi Monica'

5

Ngoài câu trả lời của Jan Marek .... Tôi nhận thấy bạn có thể thoát khỏi chỉ với:

ls - đầy đủ hoặc ls --fu

mà sẽ làm điều tương tự ls --full-timenhư ông mô tả. Cảm ơn Stéphane Chazelas. Bây giờ tôi gõ ls --fukhắp nơi. :)


1
Hoặc ls --fu. Các tùy chọn dài kiểu GNU có thể được viết tắt miễn là không có sự mơ hồ ( --fsẽ không hoạt động vì cũng có kiểu --file và --format). Lưu ý rằng một phiên bản trong tương lai có thể giới thiệu một --full-permsđiều rất nguy hiểm khi dựa vào đó.
Stéphane Chazelas

1
Tuyệt vời để biết! Đó là tất cả về gõ ít hơn. :)
G_Style

2

Nếu bạn đang sử dụng busybox(các bản phân phối được nhúng, ví dụ OpenWRT, LEDE), thì công tắc bạn đang tìm kiếm dành -echo các phiên bản lên tới 1.26.2 và --full-timecho 1.27.0 trở lên (xem cam kết đã thay đổi nó ).


1
-ecũng hoạt động với Solaris lsvà ast-open, vì vậy nó thực sự gần với tiêu chuẩn hơn GNU --full-time. Một sự xấu hổ rằng busybox đã loại bỏ nó trong các phiên bản mới hơn.
Stéphane Chazelas

@ StéphaneChazelas không biết điều đó! Cảm ơn bạn đã chỉnh sửa
Code Bling

-1

có thể yêu thích:

$ ls -altT / đường dẫn / đến / một số / dir


Như đã chỉ ra trước đó , -Ttùy chọn sẽ không hoạt động với GNU ls(cũng không được chỉ định trong POSIX). Ngoài ra, khi cung cấp mã dưới dạng câu trả lời, tốt hơn là giải thích từng phần của nó làm gì.
Anthony G - công lý cho Monica
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.