-depth
หลักในการfind
ทำให้เกิดการดำเนินการค้นหาความลึกแรก
อย่างไรก็ตามลำดับเริ่มต้นไม่ใช่การค้นหาแบบกว้าง
ลำดับเริ่มต้นสามารถอธิบายได้อย่างไม่เป็นทางการว่าเป็น "การสำรวจเส้นทางแรกที่มีความลึกที่จัดการกับโหนดเมื่อพบครั้งแรกมากกว่าจะทำเช่นนั้นในระหว่างการย้อนกลับ"
ฉันมีความต้องการที่แท้จริงสำหรับการค้นหาแบบกว้างครั้งแรก ฉันจะfind
ประพฤติตนในลักษณะนี้ได้อย่างไร
สำหรับภาพประกอบด้วยการตั้งค่าต่อไปนี้:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find
มีพฤติกรรมเริ่มต้นต่อไปนี้:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
และด้วย-depth
จะดำเนินการดังนี้:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
อย่างไรก็ตามสิ่งที่ฉันต้องการคือตัวเลือก (สมมติ) ต่อไปนี้:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
กล่าวอีกนัยหนึ่งฉันต้องfind
ดำเนินการ / รายงานไฟล์ทั้งหมด / dirs ที่ระดับความลึกที่กำหนดก่อนที่จะดำเนินการต่อไป
ฉันจะทำสิ่งนี้ได้อย่างไร
-bfs
คงไม่เป็นอย่างที่ฉันต้องการ ... ฉันมีสคริปต์ง่าย ๆ ที่สร้างดัชนีให้กับโครงการ GitLab ขนาดใหญ่เหมาะสำหรับการรวมไว้ใน GitLab Wiki มันทำให้ส่วนหัวตามลำดับชั้นตามชื่อไดเรกทอรี มันใช้งานได้ดียกเว้นว่าในโครงสร้างไฟล์ตัวอย่างด้านบนมันจะวางไว้delta
ใต้หัวเรื่องย่อยcharlie
แทนที่จะเป็นใต้alpha
หัวเรื่องหลัก
find
เอาท์พุทจะเรียงตามตัวอักษร ไม่รู้เลยว่าทำไม ....
-bfs
จะมีประโยชน์แม้ว่ามันจะไม่เหมาะกับกรณีการใช้งานนี้
find
(อย่างน้อยไม่ใช่กับเท่านั้นfind
) คุณต้องการแสดงรายการไฟล์เท่านั้นหรือคุณต้องการใช้เครื่องมืออื่น ๆ