Score:3

ฉันจะลบไฟล์ทั้งหมดในโฟลเดอร์ที่มีชื่อยาวกว่า X ได้อย่างไร

ธง ru

ฉันมีโฟลเดอร์ที่มีไฟล์มากกว่า 1,000 ไฟล์ในชื่อ 23123 123r3883 3929388394j f38238d ฯลฯ ฉันต้องลบไฟล์ทั้งหมดที่มีความยาวชื่อ > 9 ฉันจะทำอย่างไร

hr flag
จำเป็นต้องทุบตีหรือไม่? zsh มีตัวระบุ glob ที่มีประโยชน์สำหรับสิ่งนี้
cn flag
โปรดใช้ Googlehttps://superuser.com/a/702461/276585 และไม่ ฉันจะไม่ขโมยคำตอบของฟอสซี่ที่นั่น :D
Score:4
ธง hr

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

echo rm -- ????????*

สำหรับรายการไฟล์ที่ยาวขึ้น คุณสามารถแบ่งชื่อโดยใช้ xargs:

printf '%s\0' -- ????????* | xargs -r0 echo rm

หากคุณเปลี่ยนจาก ทุบตี ถึง zshคุณสามารถใช้ รอบคัดเลือกระดับโลก เพื่อทดสอบความยาวของชื่อไฟล์แต่ละไฟล์ (ผ่านไฟล์ ตอบ ตัวแปร). ข้อดีอย่างหนึ่งคือคุณสามารถเพิ่มตัวระบุอื่นๆ เช่น เอ็น (เทียบเท่ากับ bash shell's nullglob) และ . (ซึ่งจำกัดผลลัพธ์เป็นไฟล์ธรรมดา):

echo rm -- *(.Ne:'[[ $#REPLY -gt 9 ]]':)

หรือ

พิมพ์ -rNC1 -- *(.Ne:'[[ $#REPLY -gt 9 ]]':) | xargs -r0 echo rm

ในการทำให้เทียบเท่าใน bash อาจต้องมีการวนซ้ำเช่น

สำหรับ f ใน *; ทำ
  [[ -f $f && $#f -gt 9 ]] && echo rm -- "$f"
เสร็จแล้ว

ลบ เสียงสะท้อน เมื่อคุณพอใจกับไฟล์ที่ถูกต้องแล้ว.

pLumo avatar
in flag
หรือ `หา -maxความลึก 1 -type f -name "????????*" -delete`

โพสต์คำตอบ

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