คำสั่ง Linux Touch Directory


9

คำสั่ง 'สัมผัส' เมื่อนำไปใช้กับไดเรกทอรีคืออะไร?

$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test

คำตอบ:


8

ตามที่ระบุใน manpageการใช้หลักของtouchคือ:

อัปเดตเวลาการเข้าถึงและการแก้ไขของไฟล์แต่ละไฟล์เป็นเวลาปัจจุบัน

ดังนั้นจึงอัปเดตเวลาในการเข้าถึงและแก้ไขของไดเรกทอรี


4

ตัวอย่างที่ด้านบนไม่ได้ทำให้ชัดเจนว่า "touch" กำหนดเวลาของไดเรกทอรี (เวลาใหม่ในรายการเหมือนกับต้นฉบับเพียงเพราะการสัมผัสนั้นไม่นานหลังจากสร้างไดเรกทอรี) . ใช่คำจำกัดความของ "ไฟล์" ในเอกสารประกอบด้วยไดเรกทอรีดังนั้นคุณสามารถใช้การสัมผัสเพื่อเปลี่ยนการประทับเวลา แต่ ...

มีบางสถานการณ์ที่คุณไม่สามารถเปลี่ยนการประทับเวลาของไดเรกทอรี (สำหรับไดเรกทอรีที่ติดตั้งแบบรีโมตบางประเภท) แม้ว่าคุณจะได้รับอนุญาตให้ทำสิ่งอื่น เช่นการเมานต์ NFS นี้:

$ touch -d "2014-07-02 12:15" /public/test.dir    
touch: setting times of ‘/public/test.dir’: Operation not permitted

นอกจากนี้คุณยังสามารถพบปัญหาเกี่ยวกับวันที่เก่า ๆ ที่ไม่รองรับในบางเซิร์ฟเวอร์เช่น:

$ mkdir  /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Mar 11 17:40 /Acer/kopies/test.dir

งานนี้:

$ touch "2014-04-01 00:00" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Apr  1  2014 /Acer/kopies/test.dir

สิ่งนี้จะทำงานได้ใน dir ท้องถิ่น แต่ให้วันแปลก ๆ ภายใต้การติดตั้ง Samba:

$ touch -d "1955-07-02 12:15" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Nov 26  60410 /Acer/kopies/test.dir
                              ~~~~~~~~~~~~~

2

touchเป็นโปรแกรม Unix มาตรฐานที่ใช้ในการเปลี่ยนการเข้าถึงและการแก้ไขการประทับเวลาของไฟล์ นอกจากนี้ยังใช้เพื่อสร้างไฟล์ว่างใหม่

ข้อมูลจำเพาะของระบบปฏิบัติการยูนิกซ์เดี่ยว (SUS) ระบุว่าการสัมผัสควรเปลี่ยนเวลาการเข้าถึงเวลาแก้ไขหรือทั้งสองอย่างสำหรับไฟล์ ไฟล์ถูกระบุโดยชื่อพา ธ ที่ให้มาเป็นอาร์กิวเมนต์เดียว นอกจากนี้ยังระบุว่าหากไฟล์ที่ระบุไม่มีอยู่ไฟล์จะถูกสร้างขึ้นและเวลาการเข้าถึงและการแก้ไขจะถูกตั้งค่าตามที่ระบุ หากไม่ได้ระบุเวลาบันทึกใหม่ให้แตะใช้เวลาปัจจุบัน

-Wikipedia

คุณสามารถค้นหาข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับtouchคำสั่ง (หรือคำสั่งอื่น ๆ ที่คุณต้องการทราบ) โดยใช้manคำสั่งดังนี้:

man touch


2

เหตุผลทันทีสำหรับคำถามคือข้อเท็จจริงที่ว่าเวลาในการแก้ปัญหาเริ่มต้นls -lเป็นนาทีดังนั้นรายการระบบไฟล์ที่สัมผัสภายในนาทีเดียวกันจะปรากฏขึ้นเหมือนกันในls -lผลลัพธ์เริ่มต้น

วิธีการนี้มีการอธิบายที่/superuser/355318/how-to-have-linux-ls-command-show-second-in-time-stamp และโดยทั่วไปเกี่ยวกับการทำงานls -l --time-style=full-isoแทน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.