Score:1

ค้นหาและลบไฟล์ที่มีนามสกุลเฉพาะหรือลงท้ายด้วยตัวเลข

ธง cn

ฉันต้องการให้สคริปต์ค้นหาไฟล์บางประเภทและลบออก

ฉันรู้แล้ว ค้นหาเส้นทาง/ไปยัง/ไดเร็กทอรี/ -type f -name '*.ext' -delete จะค้นหาและลบไฟล์ทั้งหมดที่มีนามสกุล.

ตอนนี้ฉันต้องการให้สคริปต์ของฉันลบไฟล์ใดๆ ที่ลงท้ายด้วยตัวเลขโดยไม่คำนึงถึงนามสกุล รวมถึงไฟล์ที่ลงท้ายด้วยนามสกุลด้วย

ฉันลองคำสั่งต่อไปนี้โดยไม่ประสบความสำเร็จ:

ค้นหาเส้นทาง/ไปยัง/ไดเร็กทอรี/ -type f -name '*.ext' -name '*[0-9].* -delete
ค้นหาเส้นทาง/ไปยัง/ไดเร็กทอรี/ -type f -name '*.ext' '*[0-9].* -delete
ค้นหาเส้นทาง/ไปยัง/ไดเร็กทอรี/ -type f -name '*.ext,*[0-9].* -delete

สิ่งเหล่านี้ไม่ได้ผล ฉันไม่แน่ใจว่าฉันต้องเปลี่ยนอะไรกันแน่ หรือฉันทำอะไรผิดไป

Score:1
ธง hr

ลบไฟล์ที่ลงท้ายด้วยนามสกุลรวมถึงไฟล์ใด ๆ ที่ลงท้ายด้วยตัวเลขโดยไม่คำนึงถึงนามสกุล

ที่ต้องการเงื่อนไขที่เข้าร่วมด้วยโลจิคัล OR แทนที่จะเป็นโลจิคัลดีฟอลต์ AND (จำเป็นต้องมีวงเล็บเนื่องจาก OR มีความสำคัญต่ำกว่า AND และต้องหลีกหรือใส่เครื่องหมายอัญประกาศเพื่อให้เชลล์ส่งผ่านไปยัง หา เป็นตัวอักษร):

ค้นหาเส้นทาง/ไปยัง/ไดเร็กทอรี/ -type f \( -name '*.ext' -o -name '*[0-9].*' \) -print

เปลี่ยน -พิมพ์ ถึง -ลบ เมื่อคุณแน่ใจว่ากำลังทำในสิ่งที่ถูกต้อง ในการใช้งาน GNU ของ หาคุณสามารถใช้ -หรือ แทนที่ -o หากคุณต้องการ

Mahmoud avatar
cn flag
ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว ฉันค่อนข้างใหม่กับการเขียนสคริปต์ ฉันคิดว่า -o หมายถึง "หรือ" แต่ทำไมฉันต้องใช้ \ ในสิ่งนี้
hr flag
@Mahmoud วงเล็บจะต้องถูกหลีก `\(` หรือยกมา `'('` เพื่อให้เชลล์ส่งผ่านไปยัง `find` เป็นตัวอักษร
Mahmoud avatar
cn flag
ผมก็เลยเขียน ```\( -name '*.ext' -o -name '*[0-9].*' \)``` แบบนี้แทน ```'( -name '*.ext ' -o -name '*[0-9].*' )'``` ถูกต้องไหม
hr flag
@Mahmoud ไม่ แต่ละบุคคล `(` หรือ `)` จำเป็นต้องอ้างอิงเป็นโทเค็นแยกต่างหาก `'(' -name '*.ext' -o -name '*[0-9].*' ')''

โพสต์คำตอบ

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