Score:0

ค้นหาไดเร็กทอรีและไฟล์

ธง kw

ฉันเข้าใจว่าฉันสามารถค้นหาไดเร็กทอรีที่มีรูปแบบเฉพาะโดยใช้:

หา . -พิมพ์ d -ชื่อ "tmp_*"

ฉันเข้าใจว่าฉันสามารถค้นหาไฟล์ที่มีไดเร็กทอรีโดยใช้:

หา . -พิมพ์ f -ชื่อ "tmp.conf"

ฉันจะแสดงรายการไดเร็กทอรีทั้งหมดที่ขึ้นต้นด้วย tmp_ ที่มีไฟล์ชื่อ tmp.conf และระบุพาธไปยังไฟล์นั้นได้อย่างไร

ขอบคุณ!

Score:0
ธง hr

คุณสามารถใช้

หา . -เส้นทาง '*/tmp_*/tmp.conf'

หรือ

หา . -regex '.*/tmp_[^/]*/tmp\.conf'

ข้อแตกต่างคืออันแรก (ซึ่งใช้สัญลักษณ์แทนเชลล์ธรรมดา) จะจับคู่สิ่งต่างๆ เช่น ./dir/tmp_foo/subdir/tmp.conf เพราะ / ไม่ได้รับการดูแลเป็นพิเศษจาก *. ส่วนที่สอง (ซึ่งใช้นิพจน์ทั่วไป) ไม่รวมการแทรกแซง / ตัวละครอย่างชัดเจน

หากคุณต้องการพาธไปยังไดเร็กทอรีที่มีเท่านั้น (โดยไม่มีไฟล์ tmp.conf ชื่อฐาน คุณสามารถใช้ หา คำสั่ง -printf กับ %ชม ตัวระบุ:

หา . -เส้นทาง '*/tmp_*/tmp.conf' -printf '%h\n'

หรือคุณสามารถทำสิ่งที่ต้องการ

หา . -พิมพ์ d -name 'tmp_*' -execdir ทดสอบ -e {}/tmp.conf \; -พิมพ์

หรือ

หา . -พิมพ์ d -name 'tmp_*' -exec sh -c '
  สำหรับ f ทำ [ -e "$f/tmp.conf" ] && echo "$f"; เสร็จแล้ว
' ค้นหา-sh {} +
Jason H avatar
kw flag
ฉันคิดว่าฉันจัดการเรื่องนี้ได้แล้ว ฉันทำสิ่งต่อไปนี้: ค้นหา ./tmp_* -type f -name "tmp.conf" | จัดเรียง -f
hr flag
@JasonH หากคุณสนใจเฉพาะไดเร็กทอรีระดับบนสุดชุดหนึ่ง คุณไม่จำเป็นต้องใช้ `find` เลย - คุณสามารถใช้ `echo tmp_*/tmp.conf` หรือ `printf '%s\n ' tmp_*/tmp.conf` (คุณอาจต้องการตั้งค่า `shopt -s nullglob` ก่อน)
Score:0
ธง cn

มีหลายวิธีในการไปโรม ฉันอาจจะค้นหาเฉพาะไฟล์ชื่อ tmp.conf ไฟล์และพิมพ์พาธแบบเต็มสำหรับแต่ละเหตุการณ์ ดังใน

หา . -type f -name 'tmp.conf' -exec readlink -f {} \;

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา