Làm cách nào để chỉnh sửa tập tin mà không thay đổi ngày sửa đổi? Trong dòng lệnh. Có vi
thể đó?
Làm cách nào để chỉnh sửa tập tin mà không thay đổi ngày sửa đổi? Trong dòng lệnh. Có vi
thể đó?
Câu trả lời:
Cách duy nhất tôi có thể nghĩ đến là lưu trữ ngày sửa đổi trước khi thay đổi và sau đó đặt lại.
Tôi không biết về bất kỳ công cụ CLI nào sẽ cho phép bạn làm điều đó, tuy nhiên nhiều năm trước tôi đã viết một cái gì đó bằng C mà tôi đã sử dụng để đặt ngày sửa đổi trên một tệp thành giá trị tùy ý. Tôi biết đây không phải là câu trả lời mà bạn đang tìm kiếm, nhưng tôi sẽ làm theo cách sau:
stat()
cuộc gọi hệ thống (đọc thêm về nó bằng cách phát hành man 2 stat
).vi
hoặc bất kỳ trình soạn thảo nào bạn muốnutimes()
cuộc gọi (một lần nữa, bạn có thể đọc thêm bằng cách phát man 2 utimes
lệnh). Xin lưu ý, utimes()
đặt cả thời gian truy cập và thời gian sửa đổi.Chỉnh sửa
Trên thực tế có vẻ như đã có một công cụ CLI có thể làm điều đó. Theo câu trả lời này: Làm cách nào để thay đổi ngày / giờ tạo (st_birthtime) của tệp trong Lion? , bạn có thể sử dụng touch
lệnh để thay đổi những thời điểm đó: touch -m
thay đổi thời gian sửa đổi và touch -a
thay đổi thời gian truy cập (bạn có thể sử dụng cả hai tùy chọn trong một cuộc gọi). Tất cả những gì bạn cần làm là sử dụng stat
dòng lệnh trên tệp trước khi bạn sửa đổi nó và hiển thị thời gian truy cập và sửa đổi của nó. Sau đó thực hiện chỉnh sửa và sau đó, sử dụng touch
để đặt thời gian truy cập / sửa đổi trở lại giá trị của chúng từ trước khi chỉnh sửa.
Bạn có thể sử dụng cảm ứng -t để thay đổi thời gian sửa đổi và truy cập, chạm -m để thay đổi thời gian sửa đổi hoặc chạm -a để thay đổi thời gian truy cập. Tất cả đều thay đổi thời gian tạo nếu thời gian đích trước thời gian tạo ban đầu.
$ ls -lT test.txt
-rw-r--r-- 1 lauri staff 3 Nov 3 15:13:42 2013 test.txt
$ date -jf %s $(stat -f%m test.txt) +%Y%m%d%H%M.%S
201311031513.42
$ vi test.txt
$ ls -lT test.txt
-rw-r--r-- 1 lauri staff 3 Nov 3 15:18:18 2013 test.txt
$ touch -t 201311031513.42 test.txt
$ ls -lT test.txt
-rw-r--r-- 1 lauri staff 3 Nov 3 15:13:42 2013 test.txt
stat -f% m chỉ định chuỗi định dạng là thời gian sửa đổi. Trong ngày -jf, -j vô hiệu hóa cài đặt thời gian và -f chỉ định định dạng.