ค้นหาเว็บไซต์

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 อื่นๆ ในเชิงลึกพร้อมตัวอย่างที่เป็นประโยชน์ แจ้งให้เราทราบความคิดเห็นของคุณเกี่ยวกับบทความนี้โดยใช้ส่วนความคิดเห็นของเรา