Lệnh 'chạm' khi áp dụng vào thư mục là gì?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
Lệnh 'chạm' khi áp dụng vào thư mục là gì?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
Câu trả lời:
Như đã nêu trong trang này , mục đích sử dụng chính touch
là:
Cập nhật thời gian truy cập và sửa đổi của từng TẬP TIN vào thời điểm hiện tại.
Vì vậy, nó cập nhật thời gian truy cập và sửa đổi của thư mục.
Ví dụ ở trên cùng không làm rõ rằng "chạm" đặt thời gian của thư mục (thời gian mới trong danh sách giống như ban đầu, đơn giản là vì cảm ứng đã sớm xuất hiện sau khi thư mục được tạo) .. . vâng, định nghĩa của "TẬP TIN" trong tài liệu không bao gồm các thư mục, vì vậy bạn có thể sử dụng cảm ứng để thay đổi dấu thời gian của họ, NHƯNG ...
Có một số tình huống mà bạn không thể thay đổi dấu thời gian của thư mục (đối với một số loại thư mục được gắn từ xa) ngay cả khi bạn có quyền làm bất cứ điều gì khác. ví dụ: NFS mount này:
$ touch -d "2014-07-02 12:15" /public/test.dir
touch: setting times of ‘/public/test.dir’: Operation not permitted
Ngoài ra, bạn có thể gặp sự cố với một số ngày cũ không được hỗ trợ trên một số máy chủ, ví dụ:
$ mkdir /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Mar 11 17:40 /Acer/kopies/test.dir
Những công việc này:
$ touch "2014-04-01 00:00" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Apr 1 2014 /Acer/kopies/test.dir
Điều này sẽ hoạt động trên một thư mục địa phương nhưng đưa ra một ngày kỳ lạ dưới sự gắn kết Samba:
$ touch -d "1955-07-02 12:15" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Nov 26 60410 /Acer/kopies/test.dir
~~~~~~~~~~~~~
touch
là một chương trình Unix tiêu chuẩn được sử dụng để thay đổi dấu thời gian truy cập và sửa đổi của tệp. Nó cũng được sử dụng để tạo một tập tin trống mới.Thông số kỹ thuật Unix đơn (SUS) chỉ định rằng cảm ứng sẽ thay đổi thời gian truy cập, thời gian sửa đổi hoặc cả hai, đối với một tệp. Tệp được xác định bởi một tên đường dẫn được cung cấp dưới dạng một đối số. Nó cũng chỉ định rằng nếu tệp được xác định không tồn tại, tệp được tạo và thời gian truy cập và sửa đổi được đặt theo quy định. Nếu không có dấu thời gian mới được chỉ định, cảm ứng sẽ sử dụng thời gian hiện tại.
-Wikipedia
Bạn có thể tìm thêm thông tin chuyên sâu về touch
lệnh (hoặc bất kỳ lệnh nào bạn muốn biết) bằng cách sử dụng man
lệnh như thế này:
man touch
Lý do ngay lập tức cho câu hỏi là thực tế là độ phân giải thời gian mặc định ls -l
là tính bằng phút, do đó, một mục hệ thống tập tin được chạm trong cùng một phút sẽ hiển thị chính xác như nhau trong ls -l
đầu ra mặc định .
Giải pháp cho vấn đề này được mô tả tại /superuser/355318/how-to-have-linux-ls-command-show-second-in-time-stamp
và về cơ bản liên quan đến việc chạy ls -l --time-style=full-iso
thay thế.