เราจะระบุรูปแบบการเพิกเฉยหลายรูปแบบสำหรับคำสั่ง 'tree' ได้อย่างไร


105

ฉันต้องการพิมพ์โครงสร้างไดเรกทอรีของระบบการผลิตของเราและฉันต้องการลบบางไดเรกทอรีออกจากต้นไม้หรือไม่

เราจะระบุรูปแบบการเพิกเฉยหลายtreeคำสั่งได้อย่างไร

คำตอบ:


141

คุณเพียงแค่ให้ทุกรูปแบบไปยังคำสั่งแยกจากกันโดย-I |จาก manpage:

-P pattern
      List  only  those files that match the wild-card pattern.  Note:
      you must use the -a option to also consider those  files  begin‐
      ning  with a dot `.' for matching.  Valid wildcard operators are
      `*' (any zero or more characters), `?' (any  single  character),
      `[...]'  (any single character listed between brackets (optional
      - (dash) for character  range  may  be  used:  ex:  [A-Z]),  and
      `[^...]'  (any  single character not listed in brackets) and `|'
      separates alternate patterns.

-I pattern
      Do not list those files that match the wild-card pattern.

ตัวอย่างเช่น

tree -I 'test*|docs|bin|lib'

ข้าม 'docs', 'bin' และ 'lib', ไดเรกทอรีและไดเรกทอรีใด ๆ ที่มี 'test' ในชื่อไม่ว่าจะอยู่ในลำดับชั้นของไดเรกทอรีก็ตาม เห็นได้ชัดว่าคุณสามารถใช้อักขระตัวแทนเพื่อการจับคู่ที่ทรงพลังยิ่งขึ้น


4
มองไปที่หน้าคนเห็นคำอธิบายสั้น ๆ สำหรับ "-I" รู้สึกผิดหวัง ไม่คิดว่าจะดูไม่กี่บรรทัดข้างต้น ขอบคุณ ;)
Tomislav Nakic-Alfirevic

วิธีการตั้งค่าตัวกรองเพื่อรับไฟล์. html เท่านั้นไม่มีอะไรอื่น
Jitendra Vyas

ขอบคุณ! ฉันใช้สิ่งนี้เพื่อเรียกดูรหัสของฉันจากบรรทัดคำสั่งโดยไม่รวม node_modules
thevangelist

2
ไดเรกทอรีย่อยเช่นการdocs/subdoc/ยกเว้นได้อย่างไร
user1032531

@JitendraVyas: แล้วtree --prune -P '*.html'คุณจะได้รับไดเรคทอรีด้วย แต่มีเฉพาะ.htmlไฟล์ที่มี
fbicknel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.