touchtạ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
touchcố 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 -ctù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 touchchỉ 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 makequy tắc phụ thuộc vào tệp.
Đó là, giả sử bạn có một tệp foovà tệp thực hiện khai báo một lệnh để tạo bartừ đó foo. Khi bạn gõ make bar, lệnh được thực thi và barđược tạo. Nếu bartồn tại và mới hơn foo, make barkhông có gì, bởi vì makegiả sử barđã được tạo. Tuy nhiên, nếu barcũ hơn foo, hãy nghĩ rằng barnó 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 footồ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 maketiện ích: make -t barsẽ 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 barhiệ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 fookhông nên ảnh hưởng bar). Các touchvì vậy tiện ích là một phiên bản độc lập của make -ttí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ụngvihoặcnanolưu một tập tin trống. Nhanh hơn nhiều để sử dụngtouch.