Trong bài viết này, chúng ta sẽ giải thích hai mẹo dòng lệnh đơn giản cho phép bạn chỉ liệt kê tất cả các tệp hôm nay bằng Linux find. Một trong những vấn đề phổ biến mà người dùng Linux gặp phải trên dòng lệnh là tìm tệp với một tên cụ thể, điều này có thể dễ dàng hơn khi bạn thực sự biết tên tệp.
Tuy nhiên, giả sử bạn đã quên tên của một tệp mà bạn đã tạo (trong thư mục home
của bạn chứa hàng trăm tệp) vào thời điểm trước trong ngày và bạn cần sử dụng gấp.
Dưới đây là các cách khác nhau để chỉ liệt kê tất cả các tệp bạn đã tạo hoặc sửa đổi (trực tiếp hoặc gián tiếp) hôm nay.
1. Bằng cách sử dụng lệnh ls
, bạn chỉ có thể liệt kê tệp hôm nay trong thư mục home
của bạn như sau, trong đó:
-a
– liệt kê tất cả các tệp bao gồm các tệp ẩn
-l
– cho phép định dạng liệt kê dài
--time-style=FORMAT
– hiển thị thời gian theo FORMAT đã chỉ định
+%D
– hiển thị/sử dụng ngày theo định dạng %m/%d/%y
# ls -al --time-style=+%D | grep 'date +%D'
Tìm Tệp Gần Đây Trong Linux
Ngoài ra, bạn có thể sắp xếp danh sách kết quả theo thứ tự alphabe bằng cách bao gồm cờ -X
:
# ls -alX --time-style=+%D | grep 'date +%D'
Bạn cũng có thể liệt kê dựa trên kích thước (lớn nhất trước) bằng cách sử dụng cờ -S
:
# ls -alS --time-style=+%D | grep 'date +%D'
2. Một lần nữa, bạn có thể sử dụng lệnh Linux find
làm cho việc linh hoạt hơn và cung cấp nhiều tùy chọn hơn ls, cho mục đích tương tự như bên dưới.
-maxdepth
được sử dụng để chỉ định mức (về các thư mục con) dưới điểm bắt đầu (thư mục hiện tại trong trường hợp này) để tiến hành hoạt động tìm kiếm.
-newerXY
, điều này hoạt động nếu thời gian đánh dấu X của tệp cần tìm mới hơn thời gian đánh dấu Y của tệp tham chiếu. X và Y đại diện cho bất kỳ chữ cái nào dưới đây:
- a – thời gian truy cập của tệp tham chiếu
- B – thời gian sinh của tệp tham chiếu
- c – thời gian thay đổi trạng thái inode của tệp tham chiếu
- m – thời gian sửa đổi của tệp tham chiếu
- t – tham chiếu được hiểu trực tiếp như một thời gian
Điều này có nghĩa là chỉ có các tệp đã được sửa đổi vào ngày 2016-12-06 sẽ được xem xét:
# find . -maxdepth 1 -newermt "2016-12-06"
Tìm Tệp Hôm Nay Trong Linux
Quan trọng: Sử dụng đúng định dạng ngày như tham chiếu trong lệnh find trên, một khi bạn sử dụng định dạng sai, bạn sẽ nhận được một lỗi như dưới đây:
# find . -maxdepth 1 -newermt "12-06-2016"
find: I cannot figure out how to interpret '12-06-2016' as a date or time
Hoặc, sử dụng các định dạng đúng dưới đây:
# find . -maxdepth 1 -newermt "12/06/2016"
OR
# find . -maxdepth 1 -newermt "12/06/16"
Tìm Tệp Đã Sửa Đổi Hôm Nay Trong Linux
Bạn có thể tìm hiểu thêm thông tin sử dụng cho lệnh ls
và Linux find
trong chuỗi bài viết tiếp theo của chúng tôi về chủ đề tương tự.
Trong bài viết này, chúng tôi đã giải thích hai mẹo quan trọng về cách chỉ liệt kê các tệp hôm nay chỉ với sự giúp đỡ của các lệnh ls và Linux find.