วิธีดูไฟล์ที่ซ่อนอยู่โดยใช้คำสั่ง 'find` บน Linux


19

บนเซิร์ฟเวอร์ Linux ฉันต้องการค้นหาไฟล์ทั้งหมดที่มีนามสกุลไฟล์ที่แน่นอนในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมด

ก่อนหน้านี้ฉันใช้คำสั่งต่อไปนี้เสมอ:

find . -type f | grep -i *.php

อย่างไรก็ตามจะไม่พบไฟล์ที่ซ่อนอยู่เช่น. myhiddenphpfile.php ต่อไปนี้ค้นหาไฟล์ php ที่ซ่อนอยู่ แต่ไม่ใช่ไฟล์ที่ไม่ได้ซ่อนไว้:

find . -type f | grep -i \.*.php

ฉันจะค้นหาทั้งไฟล์ php ที่ซ่อนและไม่ซ่อนในคำสั่งเดียวกันได้อย่างไร


1
คุณรู้ไหมว่า "re" ใน "grep" หมายถึง "expression ปกติ" ใช่ไหม ฉันมีเงื่อนงำไม่ว่าอย่างใดอย่างหนึ่งบรรทัดคำสั่งเหล่านั้นควรจะใช้งานไม่ได้ ...
อิกนาซิโอ Vazquez อับราฮัม

คำตอบ:




0

ปัญหาคือ grep ไม่ใช่การค้นหา (ลองfind . -type fเพื่อดูว่าฉันหมายถึงอะไร)

หากคุณไม่ได้อ้างถึง*เชลล์จะขยายออกก่อนที่ grep จะเห็นอาร์กิวเมนต์บรรทัดคำสั่ง เนื่องจากเชลล์ไม่พบไฟล์ที่ซ่อนอยู่ตามค่าเริ่มต้นคุณจะพบปัญหา

เหตุผลที่มันเป็นเพียงการหาไฟล์ที่ซ่อนอยู่เป็นเพราะเปลือกมีการขยายตัวอยู่แล้ว*และเพื่อ grep เป็นเพียงการจับคู่ที่หนึ่งไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.