touch
tạo một tệp mới, trống nếu tệp không tồn tại vì đó là những gì nó được thiết kế để làm. Tiện ích phải chứa mã để xử lý trường hợp đó một cách cụ thể. Tiện ích xuất hiện trong Unix V7 ; hướng dẫn sử dụng của nó mô tả nó như vậy:
chạm - ngày cập nhật sửa đổi lần cuối của một tập tin
touch
cố gắng đặt ngày sửa đổi của mỗi tệp . Điều này được thực hiện bằng cách đọc một ký tự từ tệp và viết lại. Nếu tệp ** không tồn tại, một nỗ lực sẽ được thực hiện để tạo tệp trừ khi -c
tùy chọn được chỉ định.
(Tôi không biết touch
đã làm gì nếu tệp trống. Cuộc gọi hệ thống cơ bản đến sau.)
Tôi không biết tại sao touch
được thiết kế để làm cho tập tin tồn tại, nhưng tôi nghi ngờ đó là vì make
. Tại sao bạn muốn đặt thời gian sửa đổi của tệp thành thời gian hiện tại? Có những trường hợp có thể hữu ích để đặt thời gian sửa đổi thành một thời gian cụ thể, nhưng khả năng đó đến sau, bản gốc touch
chỉ có thể đặt thời gian sửa đổi thành thời gian hiện tại. Một lý do để làm điều đó là để chạy lại một make
quy tắc phụ thuộc vào tệp.
Đó là, giả sử bạn có một tệp foo
và tệp thực hiện khai báo một lệnh để tạo bar
từ đó foo
. Khi bạn gõ make bar
, lệnh được thực thi và bar
được tạo. Nếu bar
tồn tại và mới hơn foo
, make bar
không có gì, bởi vì make
giả sử bar
đã được tạo. Tuy nhiên, nếu bar
cũ hơn foo
, hãy nghĩ rằng bar
nó không cập nhật và cần được tái tạo.
Nhưng nếu các quy tắc để tạo ra bar
đã thay đổi thì sao? Sau đó, bạn có hai lựa chọn:
rm bar; make bar
touch foo; make bar
Bạn sẽ cần foo
tồn tại để tạo bar
, nếu không lệnh thường không hoạt động.
Thuật ngữ của Touch touch cũng có mặt trong make
tiện ích: make -t bar
sẽ chỉ giả vờ chạy các lệnh, nghĩa là nó sẽ đặt thời gian sửa đổi cho thời điểm bar
hiện tại mà không thực sự chạy lệnh để tạo bar
(bạn sẽ làm điều này nếu bạn nghĩ rằng những thay đổi foo
không nên ảnh hưởng bar
). Các touch
vì vậy tiện ích là một phiên bản độc lập của make -t
tính năng.
touch /forcefsck
để tạo một tệp trống được gọi/forcefsck
để buộc các hệ thống tệp được kiểm tra lỗi trong lần khởi động lại tiếp theo. Các tập tin không cần phải chứa bất cứ điều gì, nó chỉ cần tồn tại. Nếu khôngtouch
, tôi cần sử dụngvi
hoặcnano
lưu một tập tin trống. Nhanh hơn nhiều để sử dụngtouch
.