คำแนะนำสั้น ๆ แต่มีรายละเอียดนี้จะช่วยให้คุณเริ่มต้นโดยใช้คำสั่ง "find" ใน Linux และให้ตัวอย่างที่เป็นประโยชน์ในโลกแห่งความเป็นจริง
เนื่องจากฮาร์ดไดรฟ์มีราคาถูกลงในช่วงไม่กี่ปีที่ผ่านมา เราจึงคุ้นเคยกับการมีข้อมูลหลายกิกะไบต์หรือบางครั้งอาจถึงเทราไบต์ในคอมพิวเตอร์ของเรา นี่คือเมื่อความสามารถในการค้นหาข้อมูลบนคอมพิวเตอร์ของเรากลายเป็นสิ่งสำคัญ Linux มีเครื่องมือบรรทัดคำสั่งที่มีประโยชน์มากที่เรียกว่า "find" ซึ่งจะช่วยให้คุณทำอย่างนั้นได้ ฉันจะแบ่งปันคุณสมบัติพื้นฐานบางอย่างของคำสั่ง "find" กับคุณเพื่อเริ่มต้นใช้งาน ฉันค่อนข้างแน่ใจว่าคุณจะพบว่ามันมีประโยชน์มาก
ไวยากรณ์สำหรับการใช้ “find” มีรูปแบบดังนี้:
# ค้นหา [จะค้นหาที่ไหน] [เกณฑ์]
ตัวอย่างการใช้งานอย่างง่ายคือ:
# ค้นหา -name “*.txt”
./Documents/articles/doctor_dolittle.txt
./Documents/articles/Installing_Redhat_Linux.txt
./Desktop/todo_list.txt
คำสั่งดังกล่าวจะค้นหาไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมดสำหรับไฟล์ที่มีนามสกุล "txt" สิ่งหนึ่งที่ควรทราบที่นี่คือพารามิเตอร์ทั้งหมดสำหรับการค้นหานั้นเป็นทางเลือกโดยสมบูรณ์ ซึ่งหมายความว่าแม้ว่าคุณจะเพียงแค่ป้อนคำสั่ง "find" และกดปุ่ม Enter คุณก็จะได้ผลลัพธ์ - รายการทั้งหมดในไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อย ลองดูสิ
หากคุณต้องการค้นหาไฟล์ข้อความหลายไดเรกทอรี คุณสามารถระบุไดเรกทอรีที่ต้องการค้นหาทีละรายการ:
# ค้นหา /home/hobbes/ /home/calvin/ -name “*.txt”
/home/calvin/Documents/articles/doctor_dolittle.txt
/home/calvin/Desktop/todo_list.txt
/home/hobbes/Desktop/articles.txt
/home /hobbes/data_logging.txt
คุณอาจได้รับข้อผิดพลาดเล็กน้อยเมื่อทำการค้นหา ส่วนใหญ่จะเกี่ยวข้องกับการขาดสิทธิ์ เคล็ดลับที่ดีในการทำให้เอาต์พุตสะอาดขึ้นมากคือการส่งข้อผิดพลาดไปที่ “/dev/null”:
ค้นหา /home/hobbes/ /home/calvin/ -name “*.txt” 2>/dev/null
ปัญหาอีกประการหนึ่งที่คุณอาจพบคือการที่การค้นหาเหล่านี้จะคำนึงถึงขนาดตัวพิมพ์โดยค่าเริ่มต้น ดังนั้นการค้นหา "picasso" จะไม่ให้ผลลัพธ์ "Picasso" คุณสามารถหลีกเลี่ยงได้โดยใช้ตัวเลือก “-iname”:
# ค้นหา /home/calvin/ -iname “ปิกัสโซ”
./Documents/images/picasso.png
./Documents/articles/The_artist_Picasso.doc
มี "แฮ็ก" ที่ยอดเยี่ยมมากมายสำหรับคำสั่ง "find" นี่คือบางส่วน หากต้องการค้นหาไฟล์ที่แก้ไขในช่วง 45 นาทีที่ผ่านมา คุณสามารถค้นหาตามเวลา:
# ค้นหา /home/calvin/ -mmin -45
./hello.txt
./artwork.jpg
ในทำนองเดียวกัน คุณสามารถค้นหาไฟล์ที่แก้ไขเมื่อ 15 ถึง 25 นาทีที่แล้ว:
# ค้นหา -mmin +15 -mmin -25
คุณยังสามารถควบคุมความลึกที่ "ค้นหา" เข้าไปได้เมื่อค้นหาไดเรกทอรีย่อย คำสั่งต่อไปนี้:
# ค้นหา /home/calvin/ -maxdepth 2 -name “*.txt”
จะไปที่สองระดับบนสุดของไดเร็กทอรีที่ระบุและค้นหาไฟล์ที่มีนามสกุลไฟล์ "txt" นอกจากนี้คุณยังสามารถบอก "find" เพื่อค้นหาเพียงสองระดับที่ต่ำกว่า:
# find /home/calvin/ -mindepth 2 -name “*.txt”
./artexpo.txt
./Documents/project.txt
เช่นเดียวกับคำสั่งส่วนใหญ่ คุณสามารถผนวกเอาท์พุตเข้ากับไฟล์ได้ ดังนั้นหากคุณต้องการบันทึกการค้นหา ให้ทำดังนี้:
# ค้นหา /home/calvin/ -name “*.txt”> /tmp/search.log
คำสั่ง "find" จะมีประโยชน์อย่างยิ่งเมื่อคุณคุ้นเคยกับมันแล้ว หนังสือน่าจะเขียนได้ สิ่งที่ฉันได้แบ่งปันกับคุณที่นี่เป็นเพียงรสชาติของความเป็นไปได้เท่านั้น ดูหน้าค้นหาสำหรับตัวชี้ไปยังคุณสมบัติอื่น ๆ ของ "ค้นหา" หรือไปไกลกว่านั้นด้วย “find and replace“.