<ก่อนหน้านี้ | Contents | ถัดไป>
กลับไปที่สนามเด็กเล่น
ถึงเวลาใส่ พบ เพื่อการใช้งานจริง (เกือบ) บางส่วน เราจะสร้างสนามเด็กเล่นและทดลองสิ่งที่เราได้เรียนรู้
ขั้นแรก ให้สร้าง Playground ที่มีไดเรกทอรีย่อยและไฟล์มากมาย:
[me@linuxbox ~]$ mkdir -p สนามเด็กเล่น/dir-{001..100}
[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/dir-{001..100}/file-{A..Z}
[me@linuxbox ~]$ mkdir -p สนามเด็กเล่น/dir-{001..100}
[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/dir-{001..100}/file-{A..Z}
อัศจรรย์ในพลังแห่งสายบัญชาการ! ด้วยสองบรรทัดนี้ เราได้สร้างไดเร็กทอรี Playground ที่มีไดเร็กทอรีย่อย 100 ไดเร็กทอรีแต่ละไฟล์มีไฟล์ว่าง 26 ไฟล์ ลองใช้ GUI!
วิธีการที่เราใช้เพื่อให้บรรลุเวทมนตร์นี้เกี่ยวข้องกับคำสั่งที่คุ้นเคย (mkdir) การขยายเชลล์ที่แปลกใหม่ (วงเล็บปีกกา) และคำสั่งใหม่ แตะ. โดยการรวม mkdir กับ -p ตัวเลือก (ซึ่งทำให้ mkdir เพื่อสร้างไดเร็กทอรีพาเรนต์ของพาธที่ระบุ) ด้วยการขยายวงเล็บปีกกา เราสามารถสร้างไดเร็กทอรีย่อยได้ 100 ไดเร็กทอรี
การขอ แตะ คำสั่งมักใช้เพื่อตั้งค่าหรืออัปเดตการเข้าถึง เปลี่ยนแปลง และแก้ไขเวลาของไฟล์ อย่างไรก็ตาม หากอาร์กิวเมนต์ชื่อไฟล์เป็นอาร์กิวเมนต์ของไฟล์ที่ไม่มีอยู่ ไฟล์เปล่าจะถูกสร้างขึ้น
ในสนามเด็กเล่นของเรา เราได้สร้างไฟล์ชื่อ . 100 อินสแตนซ์ ไฟล์-A. มาหาพวกเขากันเถอะ:
[me@linuxbox ~]$ ค้นหา Playground -type f -name 'file-A'
[me@linuxbox ~]$ ค้นหา Playground -type f -name 'file-A'
สังเกตว่าไม่เหมือน ls, พบ ไม่ได้ผลเป็นลำดับ ลำดับของมันถูกกำหนดโดยเค้าโครงของอุปกรณ์จัดเก็บข้อมูล เราสามารถยืนยันได้ว่าจริง ๆ แล้วเรามี 100 อินสแตนซ์ของไฟล์ด้วยวิธีนี้:
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น -type f -name 'file-A' | wc -l
100
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น -type f -name 'file-A' | wc -l
100
ต่อไป มาดูการค้นหาไฟล์ตามเวลาที่แก้ไข ซึ่งจะเป็นประโยชน์เมื่อสร้างข้อมูลสำรองหรือจัดระเบียบไฟล์ตามลำดับเวลา ในการทำเช่นนี้ ก่อนอื่นเราจะสร้างไฟล์อ้างอิงซึ่งเราจะเปรียบเทียบเวลาแก้ไข:
[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/ประทับเวลา
[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/ประทับเวลา
สิ่งนี้จะสร้างไฟล์เปล่าชื่อ การประทับเวลา และตั้งเวลาปรับเปลี่ยนเป็นเวลาปัจจุบัน เราสามารถตรวจสอบได้โดยใช้คำสั่งอื่นที่สะดวก stat, ซึ่งเป็นชนิดของซุปขึ้นของ lsส่วน stat คำสั่งเปิดเผยทุกสิ่งที่ระบบเข้าใจ
เกี่ยวกับไฟล์และคุณลักษณะ:
[me@linuxbox ~]$ สถิติสนามเด็กเล่น/ประทับเวลา
ไฟล์: `สนามเด็กเล่น/ประทับเวลา'
ขนาด: 0 บล็อก: 0 IO บล็อก: 4096 ไฟล์ว่างปกติ อุปกรณ์: 803h/2051d Inode: 14265061 ลิงก์: 1
การเข้าถึง: (0644/-rw-r--r--) Uid: ( 1001/ ฉัน) Gid: ( 1001/ ฉัน) การเข้าถึง: 2016-10-08 15:15:39.000000000 -0400
Modify: 2016-10-08 15:15:39.000000000 -0400
Change: 2016-10-08 15:15:39.000000000 -0400
[me@linuxbox ~]$ สถิติสนามเด็กเล่น/ประทับเวลา
ไฟล์: `สนามเด็กเล่น/ประทับเวลา'
ขนาด: 0 บล็อก: 0 IO บล็อก: 4096 ไฟล์ว่างปกติ อุปกรณ์: 803h/2051d Inode: 14265061 ลิงก์: 1
การเข้าถึง: (0644/-rw-r--r--) Uid: ( 1001/ ฉัน) Gid: ( 1001/ ฉัน) การเข้าถึง: 2016-10-08 15:15:39.000000000 -0400
Modify: 2016-10-08 15:15:39.000000000 -0400
Change: 2016-10-08 15:15:39.000000000 -0400
ถ้าเรา แตะ ไฟล์อีกครั้งแล้วตรวจสอบด้วย statเราจะเห็นว่าเวลาของไฟล์ได้รับการอัปเดตแล้ว:
[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/ประทับเวลา
[me@linuxbox ~]$ สถิติสนามเด็กเล่น/ประทับเวลา
ไฟล์: `สนามเด็กเล่น/ประทับเวลา'
ขนาด: 0 บล็อก: 0 IO บล็อก: 4096 ไฟล์ว่างปกติ อุปกรณ์: 803h/2051d Inode: 14265061 ลิงก์: 1
การเข้าถึง: (0644/-rw-r--r--) Uid: ( 1001/ ฉัน) Gid: ( 1001/ ฉัน) การเข้าถึง: 2016-10-08 15:23:33.000000000 -0400
Modify: 2016-10-08 15:23:33.000000000 -0400
Change: 2016-10-08 15:23:33.000000000 -0400
[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/ประทับเวลา
[me@linuxbox ~]$ สถิติสนามเด็กเล่น/ประทับเวลา
ไฟล์: `สนามเด็กเล่น/ประทับเวลา'
ขนาด: 0 บล็อก: 0 IO บล็อก: 4096 ไฟล์ว่างปกติ อุปกรณ์: 803h/2051d Inode: 14265061 ลิงก์: 1
การเข้าถึง: (0644/-rw-r--r--) Uid: ( 1001/ ฉัน) Gid: ( 1001/ ฉัน) การเข้าถึง: 2016-10-08 15:23:33.000000000 -0400
Modify: 2016-10-08 15:23:33.000000000 -0400
Change: 2016-10-08 15:23:33.000000000 -0400
ต่อไปก็ใช้ พบ เพื่ออัปเดตไฟล์ Playground บางไฟล์ของเรา:
[me@linuxbox ~]$ ค้นหา Playground -type f -name 'file-B' -exec touch '{}' ';'
[me@linuxbox ~]$ ค้นหา Playground -type f -name 'file-B' -exec touch '{}' ';'
สิ่งนี้จะอัปเดตไฟล์ทั้งหมดในสนามเด็กเล่นที่ชื่อ ไฟล์-B. ต่อไปเราจะใช้ พบ เพื่อระบุไฟล์ที่อัปเดตโดยเปรียบเทียบไฟล์ทั้งหมดกับไฟล์อ้างอิง การประทับเวลา:
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น -type f - สนามเด็กเล่นใหม่/ประทับเวลา
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น -type f - สนามเด็กเล่นใหม่/ประทับเวลา
ผลลัพธ์มีทั้งหมด 100 อินสแตนซ์ของ ไฟล์-B. เนื่องจากเราแสดง a แตะ ในทุกไฟล์ในสนามเด็กเล่นที่ชื่อว่า ไฟล์-B หลังจากที่เราปรับปรุง การประทับเวลาตอนนี้พวกเขา "ใหม่กว่า" กว่า การประทับเวลา และสามารถระบุได้ด้วย -ใหม่กว่า ทดสอบ
สุดท้าย กลับไปที่การทดสอบการอนุญาตที่ไม่ถูกต้องที่เราดำเนินการก่อนหน้านี้และนำไปใช้กับ
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น \( -type f -not -perm 0600 \) -or \(
-พิมพ์ d -ไม่ -ดัด 0700 \)
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น \( -type f -not -perm 0600 \) -or \(
-พิมพ์ d -ไม่ -ดัด 0700 \)
คำสั่งนี้แสดงรายการทั้งหมด 100 ไดเร็กทอรีและ 2600 ไฟล์ใน สนามเด็กเล่น (เช่นเดียวกับ การประทับเวลา และ สนามเด็กเล่น เองทั้งหมด 2702) เนื่องจากไม่มีสิ่งใดที่ตรงตามคำจำกัดความของเราว่า "การอนุญาตที่ดี" ด้วยความรู้ของเราเกี่ยวกับโอเปอเรเตอร์และการดำเนินการ เราสามารถเพิ่มการกระทำให้กับคำสั่งนี้เพื่อใช้การอนุญาตใหม่กับไฟล์และไดเร็กทอรีในสนามเด็กเล่นของเรา:
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น \( -type f -not -perm 0600 -exec chmod 0600 '{}' ';' \) -or \( -type d -not -perm 0700 -exec chmod 0700 '{}' ';' \)
[me@linuxbox ~]$ ค้นหาสนามเด็กเล่น \( -type f -not -perm 0600 -exec chmod 0600 '{}' ';' \) -or \( -type d -not -perm 0700 -exec chmod 0700 '{}' ';' \)
ในแต่ละวัน เราอาจพบว่ามันง่ายกว่าที่จะออกคำสั่งสองคำสั่ง คำสั่งแรกสำหรับไดเร็กทอรี และอีกคำสั่งสำหรับไฟล์ แทนที่จะเป็นคำสั่งผสมขนาดใหญ่ แต่เป็นเรื่องดีที่รู้ว่าเราสามารถทำได้ ทาง. จุดสำคัญที่นี่คือการทำความเข้าใจว่าผู้ปฏิบัติงานและการดำเนินการสามารถใช้ร่วมกันเพื่อดำเนินงานที่เป็นประโยชน์ได้อย่างไร