35 ตัวอย่างการใช้งานจริงของ Linux Find Command
คำสั่งค้นหาของ Linux เป็นหนึ่งในโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่สำคัญและใช้บ่อยที่สุดในระบบปฏิบัติการแบบ Unix คำสั่ง find ใช้เพื่อค้นหาและค้นหารายการไฟล์และไดเร็กทอรีตามเงื่อนไขที่คุณระบุซึ่งตรงกับอาร์กิวเมนต์
คำสั่ง find มีตัวเลือกมากมาย ทำให้ผู้ใช้สามารถใช้ประโยชน์จากคำสั่งนี้ได้ในสภาวะที่หลากหลาย ช่วยให้บุคคลสามารถค้นหาไฟล์ตามเกณฑ์ต่างๆ มากมาย รวมถึงสิทธิ์ ผู้ใช้ กลุ่ม ประเภทไฟล์ วันที่ ขนาด และพารามิเตอร์อื่นๆ
ในบทความนี้ เราจะนำเสนอตัวอย่าง Find Commands ใน Linux ที่ใช้บ่อยที่สุด 35 ตัวอย่าง เราได้แบ่งส่วนนี้ออกเป็นห้าส่วน ครอบคลุมการใช้งานคำสั่ง find ตั้งแต่ระดับพื้นฐานไปจนถึงระดับสูง
ส่วนที่ 1 – คำสั่งค้นหาพื้นฐานสำหรับการค้นหาไฟล์ที่มีชื่อ
เมื่อพูดถึงการค้นหาไฟล์ที่มีชื่อเฉพาะ คำสั่ง find จะเสนอตัวเลือกมากมายเพื่อปรับปรุงกระบวนการ ต่อไปนี้เป็นคำสั่งค้นหาพื้นฐานสำหรับค้นหาไฟล์ตามชื่อ
1. ค้นหาไฟล์โดยใช้ชื่อในไดเรกทอรีปัจจุบัน
ค้นหาไฟล์ทั้งหมดที่มีชื่อ tecmint.txt ในไดเร็กทอรีการทำงานปัจจุบัน
find . -name tecmint.txt
./tecmint.txt
2. ค้นหาไฟล์ภายใต้โฮมไดเร็กทอรี
ค้นหาไฟล์ทั้งหมดภายใต้ไดเร็กทอรี /home ชื่อ tecmint.txt
find /home -name tecmint.txt
/home/tecmint.txt
3. ค้นหาไฟล์โดยใช้ชื่อและละเว้นตัวพิมพ์
ค้นหาไฟล์ทั้งหมดที่มีชื่อว่า tecmint.txt และมีทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในไดเรกทอรี /home
find /home -iname tecmint.txt
./tecmint.txt
./Tecmint.txt
4. ค้นหาไดเรกทอรีโดยใช้ชื่อ
ค้นหาไดเร็กทอรีทั้งหมดที่มีชื่อว่า Tecmint ในไดเร็กทอรี /
find / -type d -name Tecmint
/Tecmint
5. ค้นหาไฟล์ PHP โดยใช้ชื่อ
ค้นหาไฟล์ php ทั้งหมดที่มีชื่อว่า tecmint.php ในไดเร็กทอรีการทำงานปัจจุบัน
find . -type f -name tecmint.php
./tecmint.php
6. ค้นหาไฟล์ PHP ทั้งหมดในไดเร็กทอรี
ค้นหาไฟล์ php ทั้งหมดในไดเร็กทอรี
find . -type f -name "*.php"
./tecmint.php
./login.php
./index.php
ส่วนที่ 2 – ค้นหาไฟล์ตามสิทธิ์
ต่อไปนี้เป็นตัวอย่างคำสั่ง find สำหรับการค้นหาไฟล์ตามสิทธิ์
7. ค้นหาไฟล์ที่มีสิทธิ์ 777
ค้นหาไฟล์ทั้งหมดที่มีสิทธิ์ 777
find . -type f -perm 0777 -print
8. ค้นหาไฟล์ที่ไม่มีสิทธิ์ 777
ค้นหาไฟล์ทั้งหมดโดยไม่ได้รับอนุญาต 777
find / -type f ! -perm 777
9. ค้นหาไฟล์ SGID ที่มีสิทธิ์ 644
ค้นหาไฟล์ บิต SGID ทั้งหมดที่มีการตั้งค่าสิทธิ์เป็น 644
find / -perm 2644
10. ค้นหาไฟล์ Sticky Bit ที่มีสิทธิ์ 551
ค้นหาไฟล์ชุด Sticky Bit ทั้งหมดที่มีสิทธิ์ 551
find / -perm 1551
11. ค้นหาไฟล์ SUID
ค้นหาไฟล์ชุด SUID ทั้งหมด
find / -perm /u=s
12. ค้นหาไฟล์ SGID
ค้นหาไฟล์ชุด SGID ทั้งหมด
find / -perm /g=s
13. ค้นหาไฟล์แบบอ่านอย่างเดียว
ค้นหาไฟล์ อ่านอย่างเดียว ทั้งหมด
find / -perm /u=r
14. ค้นหาไฟล์ปฏิบัติการ
ค้นหาไฟล์ ปฏิบัติการได้ ทั้งหมด
find / -perm /a=x
15. ค้นหาไฟล์ที่มีสิทธิ์ 777 และ Chmod เป็น 644
ค้นหาไฟล์สิทธิ์ 777 ทั้งหมด และใช้คำสั่ง chmod เพื่อตั้งค่าสิทธิ์เป็น 644
find / -type f -perm 0777 -print -exec chmod 644 {} \;
16. ค้นหาไดเรกทอรีที่มีสิทธิ์ 777 และ Chmod ถึง 755
ค้นหาไดเรกทอรีสิทธิ์ 777 ทั้งหมด และใช้คำสั่ง chmod เพื่อตั้งค่าสิทธิ์เป็น 755
find / -type d -perm 777 -print -exec chmod 755 {} \;
17. ค้นหาและลบไฟล์เดียว
หากต้องการค้นหาไฟล์เดียวชื่อ tecmint.txt แล้วลบออก
find . -type f -name "tecmint.txt" -exec rm -f {} \;
18. ค้นหาและลบหลายไฟล์
หากต้องการค้นหาและลบไฟล์หลายไฟล์ เช่น .mp3 หรือ .txt ให้ใช้
find . -type f -name "*.txt" -exec rm -f {} \;
OR
# find . -type f -name "*.mp3" -exec rm -f {} \;
19. ค้นหาไฟล์ว่างทั้งหมด
เพื่อค้นหาไฟล์ว่างทั้งหมดภายใต้เส้นทางที่กำหนด
find /tmp -type f -empty
20. ค้นหาไดเร็กทอรีว่างทั้งหมด
เพื่อจัดเก็บไดเร็กทอรีว่างทั้งหมดภายใต้พาธที่กำหนด
find /tmp -type d -empty
21. จัดเก็บไฟล์ที่ซ่อนไว้ทั้งหมด
หากต้องการค้นหาไฟล์ที่ซ่อนอยู่ทั้งหมด ให้ใช้คำสั่งด้านล่าง
find /tmp -type f -name ".*"
ส่วนที่ 3 – ค้นหาไฟล์ตามเจ้าของและกลุ่ม
ต่อไปนี้เป็นตัวอย่างคำสั่ง find สำหรับการค้นหาไฟล์ตามเจ้าของและกลุ่ม:
22. ค้นหาไฟล์เดียวตามผู้ใช้
หากต้องการค้นหาไฟล์ทั้งหมดหรือไฟล์เดียวที่เรียกว่า tecmint.txt ภายใต้ไดเร็กทอรีราก / ของ root ของเจ้าของ
find / -user root -name tecmint.txt
23. ค้นหาไฟล์ทั้งหมดตามผู้ใช้
หากต้องการค้นหาไฟล์ทั้งหมดที่เป็นของผู้ใช้ Tecmint ภายใต้ไดเร็กทอรี /home
find /home -user tecmint
24. ค้นหาไฟล์ทั้งหมดตามกลุ่ม
หากต้องการค้นหาไฟล์ทั้งหมดที่อยู่ในกลุ่ม นักพัฒนา ภายใต้ไดเรกทอรี /home
find /home -group developer
25. ค้นหาไฟล์เฉพาะของผู้ใช้
หากต้องการค้นหาไฟล์ .txt ทั้งหมดของผู้ใช้ Tecmint ภายใต้ไดเรกทอรี /home
find /home -user tecmint -iname "*.txt"
ส่วนที่ 4 – ค้นหาไฟล์และไดเรกทอรีตามวันที่และเวลา
ต่อไปนี้เป็นตัวอย่างคำสั่ง find สำหรับค้นหาไฟล์และไดเร็กทอรีตามวันที่และเวลา
26. ค้นหาไฟล์ที่แก้ไขในช่วง 50 วันล่าสุด
เพื่อค้นหาไฟล์ทั้งหมดที่ถูกแก้ไข 50 วันก่อน
find / -mtime 50
27. ค้นหาไฟล์ที่เข้าถึงในช่วง 50 วันล่าสุด
เพื่อค้นหาไฟล์ทั้งหมดที่เข้าถึงได้ 50 วันก่อน
find / -atime 50
28. ค้นหาไฟล์ที่แก้ไขล่าสุด 50-100 วัน
หากต้องการค้นหาไฟล์ทั้งหมดที่มีการแก้ไขย้อนหลังมากกว่า 50 วันและน้อยกว่า 100 วัน
find / -mtime +50 –mtime -100
29. ค้นหาไฟล์ที่เปลี่ยนแปลงใน 1 ชั่วโมงที่ผ่านมา
เพื่อค้นหาไฟล์ทั้งหมดที่มีการเปลี่ยนแปลงในช่วง 1 ชั่วโมง ที่ผ่านมา
find / -cmin -60
30. ค้นหาไฟล์ที่แก้ไขใน 1 ชั่วโมงที่ผ่านมา
เพื่อค้นหาไฟล์ทั้งหมดที่มีการแก้ไขในช่วง 1 ชั่วโมง ที่ผ่านมา
find / -mmin -60
31. ค้นหาไฟล์ที่เข้าถึงได้ใน 1 ชั่วโมงที่ผ่านมา
เพื่อค้นหาไฟล์ทั้งหมดที่เข้าถึงได้ใน 1 ชั่วโมง ที่ผ่านมา
find / -amin -60
ส่วนที่ 5 – ค้นหาไฟล์และไดเรกทอรีตามขนาด
ต่อไปนี้เป็นตัวอย่างคำสั่ง find สำหรับค้นหาไฟล์และไดเร็กทอรีตามขนาด
32. ค้นหาไฟล์ขนาด 50MB
หากต้องการค้นหาไฟล์ 50MB ทั้งหมด ให้ใช้
find / -size 50M
33. ค้นหาขนาดระหว่าง 50MB – 100MB
เพื่อค้นหาไฟล์ทั้งหมดที่มีขนาดใหญ่กว่า 50MB และน้อยกว่า 100MB
find / -size +50M -size -100M
34. ค้นหาและลบไฟล์ขนาด 100MB
หากต้องการค้นหาไฟล์ 100MB ทั้งหมดและลบออกโดยใช้คำสั่งเดียว
find / -type f -size +100M -exec rm -f {} \;
35. ค้นหาไฟล์เฉพาะและลบ
ค้นหาไฟล์ .mp3 ทั้งหมดที่มีขนาดมากกว่า 10MB และลบออกโดยใช้คำสั่งเดียว
find / -type f -name *.mp3 -size +10M -exec rm {} \;
เพียงเท่านี้ เราจะจบโพสต์นี้ที่นี่ ในบทความถัดไป เราจะพูดถึงคำสั่ง Linux อื่นๆ ในเชิงลึกพร้อมตัวอย่างที่เป็นประโยชน์ แจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับบทความนี้โดยใช้ส่วนความคิดเห็นของเรา