บน Debian, Ubuntu และอนุพันธ์ด้วย Perl rename
บางครั้งติดตั้งเป็นprename
:
#enable ** globbing
shopt -s globstar
#use the rename utility
rename -n 's/_create$/_bak/' **_create
ลบการตั้งค่าสถานะ-n
(= --no-act
) หากทำงานตามที่คาดไว้
บันทึก:
นี้น่าจะเป็นวิธีที่มีประสิทธิภาพที่สั้นที่สุดจะทำเช่นนี้โดยเฉพาะอย่างยิ่งถ้าคุณได้มีshotp -s globstar
อยู่แล้วใน (ฉันมีมันอยู่ในของฉัน~/.bashrc
)
อย่างไรก็ตามคุณจะได้รับ:
-bash: /usr/bin/rename: Argument list too long
ถ้าการ**_create
ขยายตัวมีความgetconf ARG_MAX
ยาวเกินอักขระ (2097152 บนกล่อง Linux ของฉัน)
หากเป็นกรณีนี้คุณจะต้องใช้find -print0
กับxargs -0
(ดูคำตอบของ lcd047 )
rename
จากUnicode::Tusssle
ซึ่งเป็นอีกหนึ่งสคริปต์ Perl มีตัวเลือกที่แตกต่างกัน (และเนื้อหาที่มีประสิทธิภาพมากขึ้นกว่า) สคริปต์ Perl คุณกำลังหมายถึง อากลิ่นของลินุกซ์ในตอนเช้า ;)