สำหรับยูทิลิตี้ GNU เอกสารฉบับเต็มอยู่ในinfoหน้าซึ่งคุณสามารถอ่านได้:
-f
ละเว้น; สำหรับความเข้ากันได้กับ `touch 'รุ่น BSD
ดูหน้าประวัติศาสตร์ BSD สำหรับการสัมผัสซึ่ง-fจะบังคับให้มีการสัมผัส
ถ้าคุณดูที่แหล่งที่มาของ BSDs เก่าเหล่านั้นไม่มีการutimes()เรียกระบบจึงtouchจะเปิดไฟล์ในโหมด + เขียนอ่านอ่านหนึ่งไบต์แสวงหากลับและเขียนอีกครั้งเพื่อที่จะปรับปรุงการเข้าถึงล่าสุดและเวลาที่แก้ไขล่าสุด
เห็นได้ชัดว่าคุณต้องการสิทธิ์ในการอ่านและเขียน ( touchจะหลีกเลี่ยงการพยายามทำเช่นนั้นหากaccess(W_OK|R_OK)ส่งคืนเท็จ ) -fพยายามหลีกเลี่ยงสิ่งนั้นโดยเปลี่ยนการอนุญาตเป็นการชั่วคราวเป็น 0666 !
0666 หมายถึงสิทธิ์ในการอ่านและเขียนสำหรับทุกคน จะต้องเป็นเช่นนั้น (เช่นได้รับอนุญาตที่เข้มงวดมากขึ้นเช่น 0600 ที่ยังคงอนุญาตให้ใช้การสัมผัส ) ซึ่งอาจหมายถึงในช่วงเวลาสั้น ๆ นั้นกระบวนการที่จะอนุญาตให้อ่านหรือเขียนไฟล์ไม่สามารถทำได้อีกต่อไป ทำลายการทำงาน
นั่นหมายความว่าอย่างไรว่ากระบวนการที่จะไม่เป็นอย่างอื่นได้เข้าถึงไฟล์ในขณะนี้มีโอกาสที่สั้นที่จะเปิดมันทำลายการรักษาความปลอดภัย
นั่นไม่ใช่สิ่งที่สมเหตุสมผลที่จะทำ touchการใช้งานที่ทันสมัยไม่ได้ทำอย่างนั้น ตั้งแต่นั้นมาการutime()เรียกของระบบได้รับการแนะนำให้เปลี่ยนการแก้ไขและเวลาเข้าถึงแยกกันโดยไม่ต้องปะปนกับเนื้อหาของไฟล์ (ซึ่งหมายความว่ามันยังทำงานได้กับไฟล์ที่ไม่ปกติ) และต้องการการเข้าถึงเพื่อเขียนเท่านั้น
GNU touchยังคงไม่ล้มเหลวหากผ่าน-fตัวเลือก แต่เพียงข้ามแฟล็ก ด้วยวิธีนี้สคริปต์ที่เขียนขึ้นสำหรับ BSD เวอร์ชันเก่าเหล่านี้จะไม่ล้มเหลวเมื่อถูกย้ายไปยังระบบ GNU ไม่ค่อยมีความเกี่ยวข้องในทุกวันนี้
-fเป็นตัวเลือกจะถูกละเว้น บางทีอาจมีการแยกวิเคราะห์ผ่านตัวแยกวิเคราะห์และนั่นคือมัน