Score:0

สคริปต์ทุบตีเพื่อเปลี่ยนชื่อไฟล์จากไดเร็กทอรีต่างๆ พร้อมกัน

ธง us

ถ้าฉันมีไดเร็กทอรีชื่อ /all_imagesและภายในไดเร็กทอรีนี้มีไดเร็กทอรีมากมาย ไดเร็กทอรีทั้งหมดตั้งชื่อเป็น จาน_num ดังที่แสดงด้านล่าง และในไดเร็กทอรีอาหารแต่ละจานจะมีชื่อภาพอยู่หนึ่งภาพ rgb.png. ฉันจะเปลี่ยนชื่อไฟล์รูปภาพทั้งหมดเป็นชื่อไดเร็กทอรีได้อย่างไร

ก่อน

|
âââ จาน_1
â âââ rgb.png
âââ จาน_2
â âââ rgb.png
âââ จาน_3
â âââ rgb.png
âââ จาน_4
â âââ rgb.png
âââ จาน_5
    âââ rgb.png

หลังจาก

|
âââ จาน_1
â âââ dish_1.png
âââ จาน_2
â âââ dish_2.png
âââ จาน_3
â âââ dish_3.png
âââ จาน_4
â âââ dish_4.png
âââ จาน_5
    âââ dish_5.png
Score:3
ธง hr

เชลล์ลูปอย่างง่ายควรเพียงพอ:

สำหรับ d ในจาน _*; ทำ 
  echo mv "$d/rgb.png" "$d/$d.png"
เสร็จแล้ว

หรือ (ถ้าคุณต้องการเรียกใช้งานจากที่อื่นนอกเหนือจากไดเร็กทอรีที่มี)

สำหรับ d ในเส้นทาง/ถึง/จาน_*; ทำ 
  f="${d##*/}.png"
  echo mv "$d/rgb.png" "$d/$f"
เสร็จแล้ว

ลบ เสียงสะท้อน เมื่อคุณพอใจที่จะทำสิ่งที่ถูกต้อง


หากคุณต้องการความแปลกใหม่ คุณสามารถทำสิ่งนี้กับ GNU ขนาน:

ขนาน echo mv {}/rgb.png {}/{/.}.png ::: เส้นทาง/to/dish_*

หรือ (หากรายการอาร์กิวเมนต์ยาวเกินไป)

printf '%s\0' เส้นทาง/ถึง/จาน_* | ขนาน --null echo mv {}/rgb.png {}/{/.}.png

โพสต์คำตอบ

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