touch
สร้างไฟล์ใหม่ที่ว่างเปล่าหากไฟล์ไม่มีอยู่เพราะนั่นคือสิ่งที่มันถูกออกแบบมาให้ทำ ยูทิลิตี้จะต้องมีรหัสเพื่อจัดการกับกรณีนั้นโดยเฉพาะ ยูทิลิตี้ปรากฏในUnix V7 ; ของคู่มืออธิบายดังนี้:
touch - วันที่อัปเดตแก้ไขไฟล์ครั้งล่าสุด
touch
ความพยายามที่จะกำหนดวันที่แก้ไขของแต่ละไฟล์ สิ่งนี้ทำได้โดยการอ่านตัวอักษรจากไฟล์และเขียนกลับมา หากไม่มีไฟล์ ** อยู่จะมีการพยายามสร้างไฟล์ขึ้นมาเว้นแต่-c
จะระบุตัวเลือกไว้
(ฉันไม่ทราบว่าเกิดอะไรขึ้นtouch
ถ้าไฟล์ว่างเปล่าการเรียกระบบพื้นฐานมาในภายหลัง)
ผมไม่ทราบว่าทำไมtouch
ได้รับการออกแบบมาเพื่อให้มีอยู่ไฟล์ make
แต่ผมสงสัยว่ามันเป็นเพราะ ทำไมคุณต้องการตั้งเวลาแก้ไขของไฟล์เป็นเวลาปัจจุบัน มีหลายกรณีที่อาจมีประโยชน์ในการตั้งค่าเวลาการแก้ไขเป็นเวลาเฉพาะ แต่ความสามารถนั้นมาในภายหลังต้นฉบับtouch
สามารถตั้งค่าเวลาการแก้ไขเป็นเวลาปัจจุบันเท่านั้น เหตุผลที่ต้องทำคือเรียกใช้make
กฎที่ขึ้นอยู่กับไฟล์อีกครั้ง
นั่นคือสมมติว่าคุณมีไฟล์foo
และ Makefile ที่ประกาศคำสั่งเพื่อสร้างเป็นจากbar
foo
เมื่อคุณพิมพ์make bar
คำสั่งจะถูกดำเนินการและbar
ถูกสร้างขึ้น ถ้าbar
มีอยู่และเป็นรุ่นใหม่กว่าfoo
, make bar
ไม่ทำอะไรเลยเพราะmake
สันนิษฐานว่าbar
ได้รับการสร้างขึ้น อย่างไรก็ตามหากbar
มีอายุมากกว่าfoo
ให้คิดว่าbar
ไม่ทันสมัยและจำเป็นต้องสร้างใหม่
แต่ถ้ากฎการสร้างbar
มีการเปลี่ยนแปลง? จากนั้นคุณมีสองตัวเลือก:
rm bar; make bar
touch foo; make bar
คุณจะต้องfoo
มีอยู่เพื่อสร้างbar
มิฉะนั้นคำสั่งจะไม่ทำงาน
คำศัพท์“ สัมผัส” มีอยู่ในmake
ยูทิลิตี้ด้วย: make -t bar
จะแกล้งทำเป็นเรียกใช้คำสั่งนั่นคือมันจะตั้งค่าเวลาการแก้ไขของbar
เวลาปัจจุบันโดยไม่ต้องเรียกใช้คำสั่งเพื่อสร้างbar
( จริง ๆถ้าคุณคิดว่า การเปลี่ยนแปลงที่foo
ไม่ควรมีผลกระทบbar
) touch
ยูทิลิตี้จึงเป็นแบบสแตนด์อโลนของmake -t
คุณลักษณะ
touch /forcefsck
เพื่อสร้างไฟล์ว่างที่เรียกว่า/forcefsck
เพื่อบังคับให้ระบบไฟล์ตรวจสอบข้อผิดพลาดในการรีบูตครั้งถัดไป ไฟล์นั้นไม่จำเป็นต้องมีอะไรเลยมันแค่ต้องมีอยู่ ไม่ต้องtouch
ฉันจะต้องใช้vi
หรือnano
บันทึกไฟล์เปล่าtouch
เร็วมากที่จะใช้