เป็นไปได้ไหมที่จะใช้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"