Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

เริ่มต้นใช้งานคำสั่ง 'find' ใน Linux

คำแนะนำสั้น ๆ แต่มีรายละเอียดนี้จะช่วยให้คุณเริ่มต้นโดยใช้คำสั่ง "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“.