เป็นไปได้ไหมที่จะใช้find
คำสั่งเพื่อค้นหาไฟล์ภายในไฟล์เก็บถาวร tar.gz ด้วยการใช้สัญลักษณ์แทน?
ชอบ
find archive.tar.gz --name *foo*
เป็นไปได้ไหมที่จะใช้find
คำสั่งเพื่อค้นหาไฟล์ภายในไฟล์เก็บถาวร tar.gz ด้วยการใช้สัญลักษณ์แทน?
ชอบ
find archive.tar.gz --name *foo*
คำตอบ:
เพียงแค่:
$ tar tf archive.tar.gz | grep foo
tar tf graphics.tar.gz | find . --name *space*
แต่มันพูดว่าunkown predicate --name
find
ข้อโต้แย้ง@clamp ใช้เวลาเพียงหนึ่งขีด แต่เนื่องจากเป็นรายการไฟล์ใน stdin คุณต้องการใช้grep
แทนเช่นรหัสตัวอย่างของ hesse ลองtar tf graphics.tar.gz | grep 'space'
grep *foo*
ไม่ใช่นิพจน์ทั่วไปที่ถูกต้อง greg
ไม่เข้าใจ globs มันเข้าใจการแสดงออกปกติ ลองgrep foo
แทน
ใส่ไฟล์เก็บถาวรเป็นไดเรกทอรี คุณสามารถทำมันด้วยAVFSระบบแฟ้มซึ่งจะช่วยให้คุณสามารถเข้าถึงข้อมูลที่เก็บใด ๆ #
ที่เป็นไดเรกทอรีที่มีชื่อมีต่อท้าย
mountavfs
cd ~/.avfs$PWD
find archive.tar.gz\# -name '*foo*'
ฉันคิดว่ามันใช้งานได้โดยไม่มีท่อและ grep
แบบนี้:
tar tvf archive.tar.gz "foo"
ด้วยวิธีนี้ globs จะทำงานเช่นกัน
tar tvf archive.tar.gz "*.foo"