การเปลี่ยนชื่อไฟล์หลายไฟล์ที่ตรงกับ UNIX ค้นหาคำสำคัญ


2

ฉันมีผลลัพธ์จากคำสั่ง find สำหรับค้นหาไฟล์ที่มีyyyชื่อ:

./plonetheme/xxx/yyy-logo.png
./plonetheme/xxx/profiles/default/plonetheme.yyy_various.txt
./plonetheme/xxx/skins/plonetheme_yyy_custom_images
./plonetheme/xxx/skins/plonetheme_yyy_custom_images/CONTENT.txt
./plonetheme/xxx/skins/plonetheme_yyy_custom_templates
./plonetheme/xxx/skins/plonetheme_yyy_custom_templates/CONTENT.txt
./plonetheme/xxx/skins/plonetheme_yyy_custom_templates/main_template.pt
./plonetheme/xxx/skins/plonetheme_yyy_styles
./plonetheme/xxx/skins/plonetheme_yyy_styles/base_properties.props
./plonetheme/xxx/skins/plonetheme_yyy_styles/CONTENT.txt

ฉันจะเปลี่ยนชื่อไฟล์ทั้งหมดเพื่อให้สตริงyyyนั้นถูกแทนที่ด้วยได้zzzอย่างไร?

คำตอบ:


6

คุณสามารถใช้การจัดการสตริง bashเพื่อให้บรรลุสิ่งที่คุณต้องการ:

find PATH/PATTERN -exec bash -c 'mv "$0" "${0/yyy/zzz}"' {} \;

-execสวิทช์รันคำสั่งถึงหนี;ซึ่ง{}เป็นเส้นทางของไฟล์บิดาที่ได้รับการจัดการในปัจจุบัน

bash -c 'mv "$0" "${0/cix/stix}"' {}ผ่านเส้นทางนั้นเป็นอาร์กิวเมนต์เพื่อทุบตีซึ่งย้าย$0(อาร์กิวเมนต์แรกเช่น./plonetheme/xxx/yyy-logo.png) ไปยัง${0/yyy/zzz}(อาร์กิวเมนต์แรกที่ถูกจัดการเช่น./plonetheme/xxx/zzz-logo.png)


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