คำสั่ง touch ใน Linux อัปเดต timestamps บนไฟล์ หรือสร้างไฟล์หากไม่มีอยู่ ดูตัวอย่างและ use cases ด้านล่าง
มันดูไร้ประโยชน์ แต่จริงๆ มีประโยชน์ เช่น หากต้องการสร้างไฟล์ว่างชื่อ my_file.txt ให้รัน:
touch my_file.txt
ง่าย!
การอัปเดต timestamps ของไฟล์ก็มีประโยชน์เช่นกัน
สมมติคุณมีไฟล์ favorite_tv.txt ที่เก็บชื่อรายการ TV โปรดปัจจุบัน
รายการโปรด 10 ปีก่อนคือ The Flintstones และยังคงเป็นโปรด มันไม่เปลี่ยน แต่ timestamp ของไฟล์แสดงว่ามันถูก edit 10 ปีก่อน ใครดูอาจคิดว่ามันไม่ใช่โปรดแล้ว
โดยการรัน:
touch favourite_tv.txt
… เนื้อหาไฟล์คงเดิม แต่ใครดู timestamps จะเห็นว่า The Flintstones ยังคงเป็นโปรด เพราะ modification timestamp ใหม่
touch Syntax
touch [OPTIONS] file1 [file2 file3...]
โปรดทราบว่า:
- สามารถส่ง path ไฟล์ได้หนึ่งหรือหลายไฟล์
- Optional OPTIONS ส่งได้ – ดูตารางด้านล่างสำหรับตัวทั่วไป
- โดย default touch จะ update ทั้ง access และ modification times ของไฟล์ที่ระบุ
ตัวเลือก (Options)
| -a | เปลี่ยนแค่ access time |
| -c | อย่าสร้างไฟล์ใหม่ |
| -m | เปลี่ยนแค่ modification time |
| -d DATE | ใช้ DATE แทนเวลาปัจจุบัน DATE เป็น date/time ในรูปแบบที่ parse ได้ |
| -h | กระทบ symbolic link เอง แทนที่จะเป็น referenced file |
สำหรับตัวเลือกและรายละเอียดเพิ่มเติม ดู touch manual โดยรัน:
man touch
ตัวอย่าง touch
การสร้างไฟล์ใหม่หรืออัปเดท access และ modification timestamps ครอบคลุมไปแล้วข้างต้น – นี่คือตัวอย่างเพิ่มเติมใช้ตัวเลือกด้านบน
เพื่อยืนยันการเปลี่ยนแปลงจากตัวอย่างด้านล่าง สามารถรัน:
stat
เปลี่ยนแค่ Access Time
touch -a my_file.txt
เปลี่ยนแค่ Modification Time
touch -m my_file.txt
ตั้งค่า Date/Time เฉพาะ
touch -d '17 March 2021 10:26' my_file.txt
Symbolic Links
โดย default touch จะ operate บนไฟล์ที่ถูกอ้างอิงโดย symbolic link แทนที่จะบน link เอง เพื่อเปลี่ยนและอัปเดต timestamps ของ link ใช้ตัวเลือก -h:
touch -h my_symbolic_link