ขณะนี้ฉันกำลังพยายามเปลี่ยนชื่อไดเร็กทอรีทั้งหมดที่มี 123 เป็น 321.
ตัวอย่างเช่น หากฉันมีไดเร็กทอรีชื่อ test123test ฉันอยากจะเปลี่ยนชื่อเป็น test321test.
จนถึงตอนนี้ ฉันมีบางอย่างที่มีลักษณะดังนี้:find . -depth -name *123* -exec mv {}
นั่นคือสิ่งที่ฉันกำลังประสบปัญหา\;
เพราะฉันไม่' ไม่ทราบว่าฉันสามารถเปลี่ยนชื่อโฟลเดอร์ตามชื่อเดิมได้อย่างไร
หากคุณมีความคิดเห็นเกี่ยวกับวิธีดำเนินการต่อ โปรดมีส่วนร่วม
การเปลี่ยนชื่อไดเร็กทอรีตามรูปแบบ
คำตอบ (1)
ลอง for วนซ้ำ:
for dir in `find . -type d -depth X -name '*123*'` ; do
mv "$dir" "${dir/123/321}"
done
หมายเหตุ: คุณต้องแก้ไข X
ในด้านบน และอาจล้มเหลวหากมีเส้นทางเช่น './dir123/dir123/
'
person
Zsolt Botykai
schedule
27.03.2013
ขอบคุณมาก มันใช้งานได้หลังจากที่ฉันลบภาคแสดงความลึกออก
- person BenFradet; 27.03.2013