คู่มือผู้ใช้: ใช้เปลี่ยนชื่อ Command บน Linux
คุณเคยพยายามใช้คำสั่งเปลี่ยนชื่อบน ลินุกซ์ เหรอ? คุณต้องการที่จะจับกับโรงไฟฟ้าที่เปลี่ยนชื่อไฟล์ของโลก Linux และให้ mv - และพักผ่อนด้วยตัวคุณเอง การเปลี่ยนชื่อทำได้รวดเร็วยืดหยุ่นและค่อนข้างง่าย นี่คือคำแนะนำโดยละเอียดเกี่ยวกับโรงไฟฟ้าของคำสั่งนี้
เกิดอะไรขึ้นกับ mv?
ไม่มีอะไรผิดพลาดกับ mv . อย่างไรก็ตามคำสั่งทำงานได้ดี นอกจากนี้คุณสามารถพบได้ใน Linux ทุกรุ่นใน macOS และในระบบปฏิบัติการอื่น ๆ ที่คล้าย Unix อย่างไรก็ตามสามารถใช้ได้ตลอดเวลา แต่แน่นอนคุณไม่ต้องการพลั่ว แต่ต้องการรถปราบดิน
คำสั่ง mv มีจุดมุ่งหมายในชีวิตนั่นคือการย้ายไฟล์ เป็นผลข้างเคียงที่ปลอดภัยซึ่งสามารถใช้เพื่อย้ายไฟล์เก่าได้ เป็น ไฟล์ใหม่พร้อมชื่อใหม่ เอฟเฟกต์คือการเปลี่ยนชื่อไฟล์เพื่อให้คุณได้สิ่งที่ต้องการ แต่ mv ไม่ใช่เครื่องมือปรับแต่งการเปลี่ยนชื่อไฟล์
วิธีเปลี่ยนชื่อไฟล์เดียวด้วย mv

หากคุณต้องการใช้ mv เพื่อเปลี่ยนชื่อไฟล์จากนั้นพิมพ์ mv, ช่องว่างชื่อไฟล์ช่องว่างและชื่อใหม่ที่คุณต้องการให้ไฟล์มี จากนั้นกด Enter
คุณยังสามารถใช้ ls เพื่อตรวจสอบว่าไฟล์ถูกเปลี่ยนชื่อหรือไม่
mv renameวิธีเปลี่ยนชื่อไฟล์หลายไฟล์ด้วย mv
สิ่งต่างๆเริ่มซับซ้อนหลังจากเปลี่ยนชื่อไฟล์หลายไฟล์ perl-rename ไม่มีความสามารถในการจัดการกับการเปลี่ยนชื่อไฟล์ต่างๆ คุณต้องหันไปใช้กลเม็ด Bash ที่เป็นประโยชน์ จะดีถ้าคุณรู้จัก fu บรรทัดคำสั่งระดับกลาง แต่มีปัญหาในการเปลี่ยนชื่อไฟล์ที่แตกต่างกันด้วย mv หมายถึงความสะดวกในการใช้งาน mv เพื่อเปลี่ยนชื่อไฟล์เดียว
สิ่งต่างๆบานปลายทันที
สมมติว่านี่คือไดเร็กทอรีที่มีไฟล์จำนวนมากในประเภทต่างๆ บางไฟล์มีนามสกุล .prog ส่วนขยาย. เราต้องการเปลี่ยนชื่อไฟล์เหล่านั้นที่บรรทัดคำสั่งเพื่อให้มีไฟล์ .prg ส่วนขยาย.
มาดูไฟล์กัน
renameต่อไปนี้เป็นวิธีการหนึ่งที่ไม่สามารถใช้การเขียนไฟล์สคริปต์ Bash จริงได้
renameได้ผลหรือไม่? มาตรวจสอบไฟล์แล้วดำเนินการต่อไป
renameดังนั้นจึงใช้งานได้ดี พวกเขาทั้งหมด .prg ตอนนี้และไม่มีไฟล์ .prog ไฟล์ในไดเร็กทอรี
เกิดอะไรขึ้น?
คำสั่งยาวทำอะไรได้จริง? มาดูกันเลย
prenameส่วนแรกเริ่มวนซ้ำที่จะประมวลผลทุกๆ .prog ในไดเร็กทอรีในทางกลับกัน
อีกส่วนหนึ่งบอกว่าการประมวลผลจะเป็นอย่างไร ทำ . มันใช้ mv เพื่อย้ายแต่ละไฟล์ไปยังไฟล์ใหม่ ชื่อไฟล์ใหม่จะค่อนข้างใกล้เคียงกับชื่อไฟล์ต้นฉบับยกเว้นส่วน. prog นอกจากนี้จะใช้นามสกุล. prg
นี่คือวิธีง่ายๆ
แน่นอนที่สุด นี่คือไฟล์ เปลี่ยนชื่อ คำสั่ง

ไม่ใช่ส่วนหนึ่งของการแจกจ่าย Linux มาตรฐานดังนั้นคุณต้องการติดตั้ง นอกจากนี้ยังมีชื่อที่แตกต่างกันในตระกูลต่างๆของ Linux แต่ทั้งหมดทำงานในลักษณะเดียวกัน คุณเพียงแค่แทนที่ชื่อคำสั่งที่ถูกต้องตามรสนิยมของ Linux ที่คุณใช้
ในการแจกแจง Debian หรือ Ubuntu คุณเพียงแค่ติดตั้ง perl-rename แบบนี้:
*.progในการแจกแจงที่ได้มาจาก RedHat หรือ Fedora คุณเพียงแค่ติดตั้ง ชื่อย่อ แบบนี้. จำไว้ว่า p เริ่มต้นย่อมาจาก Perl
renameในการติดตั้งใน Manjaro Linux ให้ใช้คำสั่งต่อไปนี้ โปรดทราบว่าคำสั่งเปลี่ยนชื่อเรียกว่า s
.progใช้คำสั่งเปลี่ยนชื่อ -> มาลองอีกครั้ง
ในที่นี้เราจะใช้ rename เรากำลังทำสิ่งนี้เพื่อให้เรามีชุดไฟล์. prog
.prgมาใช้คำสั่งที่ระบุด้านล่างเพื่อเปลี่ยนชื่อ เราจะตรวจสอบด้วย ล สั่งว่าทำงานหรือไม่ หากคุณต้องการแทนที่ rename ด้วยชื่อคำสั่งที่ถูกต้องสำหรับ Linux หากไม่สามารถใช้ Ubuntu หรือ Linux ที่ได้รับ Debian
ls lsใช้งานได้ดีตอนนี้ทั้งหมดเป็นไฟล์. prg ไม่รวม .prog ไฟล์ที่เหลืออยู่ในไดเร็กทอรี
เกิดอะไรขึ้นที่นี่?
เราจะมาพูดคุยกันในสามส่วน
ใน อันดับแรก คุณจะเห็นชื่อคำสั่ง rename (หรือ ls หรือ ls สำหรับการแจกแจงอื่น ๆ )
ที่สาม ล่าสุด ส่วนหนึ่งคือ ^ ซึ่งอธิบาย $ เพื่อดำเนินการกับไฟล์. prog ทั้งหมด
วินาที ส่วนหนึ่งอธิบายถึงงานที่เราต้องการทำในแต่ละชื่อไฟล์ ^ หมายถึงสิ่งทดแทน เทอม 1 (ls) คืออะไร ls จะค้นหาในแต่ละชื่อไฟล์และเทอมที่ 2 (ls) คือสิ่งที่จะถูกแทนที่ด้วย
วิธีบันทึกเค้าโครงเดสก์ท็อป
คำสั่งตรงกลางหรือนิพจน์กลางคือ Perl 'นิพจน์ทั่วไป' และเป็นสิ่งที่ให้ s/ สั่งความน่าเชื่อถือ
การแก้ไขส่วนอื่น ๆ ของชื่อไฟล์
เราได้แก้ไขนามสกุลไฟล์แล้วเรามาเปลี่ยนส่วนอื่น ๆ ของชื่อไฟล์กัน
ในไดเร็กทอรีมีไฟล์ซอร์สโค้ด C จำนวนมาก ชื่อไฟล์ทั้งหมดขึ้นต้นด้วย คำแสลง _. นอกจากนี้เรายังสามารถตรวจสอบได้ด้วย y/
a-zที่นี่เราแทนที่สิ่งที่เกิดขึ้นทั้งหมดของ slang_ ด้วย sl_ รูปแบบคำสั่งค่อนข้างคุ้นเคยกับเรา เรากำลังแก้ไขข้อความค้นหาคำที่ใช้แทนและประเภทของไฟล์
A-Zที่นี่เรากำลังค้นหาไฟล์. c และกำลังมองหา slang_ เมื่อใดก็ตามที่คุณพบ slang_ ในชื่อไฟล์มันจะถูกแทนที่ด้วย sl_
คุณยังสามารถตรวจสอบผลลัพธ์ของคำสั่งหลังจากทำซ้ำคำสั่ง ls จากด้านบนโดยใช้พารามิเตอร์เดียวกัน:
a-zการลบบางส่วนของชื่อไฟล์
นอกจากนี้เรายังสามารถลบส่วนหนึ่งของชื่อไฟล์หลังจากแทนที่คำค้นหาโดยไม่มีอะไรเลย
mv oldfile.txt newfile.txt
นอกจากนี้เรายังสามารถดูจากไฟล์ ล สั่งว่า .ค ไฟล์ทั้งหมดถูกนำหน้าด้วย sl_ ทิ้งไว้ทั้งหมด
เปลี่ยนชื่อ คำสั่งเป็นไปตามรูปแบบเดียวกับที่กล่าวไว้ข้างต้น เราจะค้นหาไฟล์. c คำค้นหาคือ sl_ แต่ไม่มีคำที่ใช้แทน เครื่องหมายแบ็กสแลช '//' สองอันที่ไม่มีอะไรคั่นระหว่างนั้นหมายถึงสตริงว่าง
ls *.txtสามารถประมวลผลไฟล์. c แต่ละไฟล์ได้ นอกจากนี้ยังค้นหา sl_ ในชื่อไฟล์ หากคุณพบมันคุณสามารถแทนที่ได้โดยไม่มีอะไรเลย หรือมิฉะนั้นคำค้นหาจะถูกลบออก
การใช้งาน
ls *.prog -lคำสั่งยืนยันว่าคำนำหน้า sl_ ถูกลบออกจากไฟล์. c ทุกไฟล์
จำกัด การแก้ไขเฉพาะบางส่วนของชื่อไฟล์
มาใช้
for f in *.prog; do mv -- '$f' '${f%.prog}.prg' เพื่อดูไฟล์ที่มีสตริงพารามิเตอร์ในชื่อไฟล์ จากนั้นเราจะใช้ เปลี่ยนชื่อ คำสั่งเพื่อแทนที่สตริงผ่านพารามิเตอร์สตริง นอกจากนี้เรายังใช้ ล อีกครั้งเพื่อดูเอฟเฟกต์ของไฟล์ เปลี่ยนชื่อ มีคำสั่งกับไฟล์เหล่านั้นls *.pr*
for f in *.prog; do mv -- '$f' '${f%.prog}.prg' sudo apt-get install rename
จากนั้นคุณจะดูไฟล์สี่ไฟล์ที่มี หยุด ในชื่อไฟล์ของพวกเขา param.c, param_one.c และ param_two.c ทั้งหมดมี หยุด ที่ จุดเริ่มต้น ชื่อของพวกเขา third_param.c มี หยุด ที่ ล่าสุด ของชื่อก่อนส่วนขยาย
คุณสามารถค้นหา เปลี่ยนชื่อ คำสั่งสำหรับ param ทุกที่ในชื่อไฟล์ จากนั้นคุณสามารถแทนที่ด้วยพารามิเตอร์ในทุกกรณี
การใช้งาน ล คำสั่งแสดงให้เราเห็นว่าเกิดอะไรขึ้นกันแน่ ไม่ว่าจะเป็น หยุด อยู่ที่จุดเริ่มต้นหรือท้ายชื่อไฟล์ คุณยังสามารถแทนที่ด้วยไฟล์ พารามิเตอร์.
เราสามารถใช้ metacharacters ของ Perl เพื่อชำระพฤติกรรมของนิพจน์กลางได้ Metacharacters คือสัญลักษณ์ที่แสดงถึงลำดับหรือตำแหน่งของอักขระ ตัวอย่างเช่น
sudo dnf install prenameหมายถึงจุดเริ่มต้นของสตริง (.) หมายถึงอักขระเดี่ยวใด ๆ (นอกเหนือจากอักขระขึ้นบรรทัดใหม่),
sudo pacman -Syu perl-renameหมายถึงจุดสิ้นสุดของสตริง
นอกจากนี้เรายังใช้จุดเริ่มต้นของอักขระเมตาสตริง (
ls *.prog) เพื่อ จำกัด การค้นหาของเราไว้ที่จุดเริ่มต้นของชื่อไฟล์
rename 's/.prog/.prg/' *.prog
ls *.pr*
ls sl*.c
rename 's/slang_/sl_' *.c
ไฟล์ที่เราเปลี่ยนชื่อมีอยู่ในรายการก่อนหน้านี้ นอกจากนี้เราสามารถดูพารามิเตอร์สตริงได้ที่จุดเริ่มต้นของ 3 ชื่อไฟล์และอยู่ที่ท้ายชื่อไฟล์ใดชื่อหนึ่ง
ของเรา เปลี่ยนชื่อ คำสั่งใช้จุดเริ่มต้นของตัวละครบรรทัด (^) ก่อนพารามิเตอร์ข้อความค้นหา อธิบายว่าให้พิจารณาคำค้นหาเพื่อดูว่าเป็นจุดเริ่มต้นของชื่อไฟล์หรือไม่ พารามิเตอร์สตริงการค้นหาจะถูกหลีกเลี่ยงหากอยู่ที่อื่นในชื่อไฟล์
เมื่อมองด้วย
ls sl*.cเราจะสามารถดูได้ว่าชื่อไฟล์ที่มีพารามิเตอร์อยู่ที่ไฟล์ ล่าสุด ของชื่อไฟล์ไม่มีการเปลี่ยนแปลง แต่ชื่อไฟล์ทั้งสามมีพารามิเตอร์ที่ จุดเริ่มต้น ของชื่อที่มีสตริงการค้นหาถูกแทนที่ด้วยค่าคำที่ใช้แทน
เปลี่ยนชื่อ อำนาจอยู่ในอำนาจของ Perl
มองด้วยการจัดกลุ่ม
ต่อไปนี้เป็นกรณีที่คุณอาจมีไฟล์ที่มีสตริงเดียวกันในชื่อ สตริงเหล่านี้ไม่เหมือนกันทุกประการดังนั้นคุณเพียงแค่มองหาและการแทนที่ไม่สามารถทำงานได้ที่นี่
ในตัวอย่างนี้เราใช้
ls *.c rename 's/sl_//' *.c ls *.cเพื่อดูว่าไฟล์ใดที่เรามีที่ขึ้นต้นด้วย str นอกจากนี้ยังมีสองคนคือ string.c และ strale.c นอกจากนี้เรายังสามารถเปลี่ยนชื่อสตริงทั้งสองได้หลังจากใช้วิธีการที่เรียกว่าการจัดกลุ่ม
นิพจน์กลางของ เปลี่ยนชื่อ คำสั่งจะค้นหาสตริงภายในชื่อไฟล์ที่มีลำดับอักขระ ริ้ว หรือ สเตรนจ์ ลำดับเหล่านี้ตามด้วย ng หรืออีกวิธีหนึ่งคือข้อความค้นหาของเราจะมองหาสตริง และ แปลก ระยะการแทนที่คือ ปัง.
ls *param*
rename 's/param/parameter' *.c
ls *param*
หลังจากใช้
ls *param*.cอีกครั้งยืนยันว่า string.c กลายเป็น bang.c แล้วตอนนี้ strale.c เป็น bangle.c
ใช้คำสั่งเปลี่ยนชื่อด้วยการแปล
เปลี่ยนชื่อ คำสั่งดำเนินการทั้งหมดกับชื่อไฟล์ที่เรียกว่าการแปล นี่คือตัวอย่างของการแปลที่บังคับให้ชุดชื่อไฟล์เป็นตัวพิมพ์ใหญ่
ใน เปลี่ยนชื่อ คำสั่งที่ระบุด้านล่างแจ้งให้ทราบว่าเราไม่ได้ใช้
rename 's/^parameter/value/' *.cในการเริ่มต้นนิพจน์กลางเรากำลังใช้
ls *param*.cอธิบายว่าคำสั่งไม่สามารถทำการทดแทนได้ เรากำลังดำเนินการแปล
ระยะ
ls value*.cเป็นนิพจน์ Perl หมายความว่าอักขระตัวพิมพ์เล็กทั้งหมดในลำดับจาก a ถึง z แต่ระยะ
ls str*.cแทนตัวอักษรตัวพิมพ์ใหญ่ทั้งหมดในลำดับจาก A ถึง Z
นิพจน์กลางในคำสั่งนี้สามารถถอดความได้ราวกับว่าพบตัวอักษรพิมพ์เล็กจาก a ถึง z ในชื่อไฟล์ แทนที่โดยใช้อักขระที่เกี่ยวข้องจากลำดับของอักขระตัวพิมพ์ใหญ่จาก A ถึง Z
หากคุณต้องการบังคับให้ชื่อไฟล์ของไฟล์. prg ทั้งหมดเป็นตัวพิมพ์ใหญ่ให้ใช้คำสั่งนี้:
เปลี่ยนชื่อ 'y / a-z / A-Z /' * .prg
rename 's/(stri|stra)ng/bang/' *.c
คำสั่ง
ls ban*.cแสดงให้เราเห็นว่าทั้งหมด .prg ตอนนี้ไฟล์นามสกุลเป็นตัวพิมพ์ใหญ่ นอกจากนี้เพื่อให้ถูกต้องอย่างเคร่งครัดก็ไม่ได้ .prg ไฟล์อีกต่อไป ก็คือไฟล์. PRG ตรวจสอบให้แน่ใจว่า Linux คำนึงถึงขนาดตัวพิมพ์
นอกจากนี้เรายังสามารถย้อนกลับคำสั่งสุดท้ายนั้นได้หลังจากกลับไปที่ตำแหน่งของ
ls *.PRGและคำศัพท์ A-Z ในนิพจน์กลาง
เปลี่ยนชื่อ 'y / A-Z / a-z /' * .PRG
ls * .prg
คุณไม่สามารถเรียนรู้ Perl ได้ในห้านาที
การจับกับ Perl นั้นใช้เวลาได้ดี แต่ในการเริ่มต้นใช้ความสามารถในการประหยัดเวลาของไฟล์ เปลี่ยนชื่อ คำสั่งคุณไม่ได้มีความรู้เกี่ยวกับ Perl มากนักเพื่อเก็บเกี่ยวความได้เปรียบในอำนาจ
สรุป:
ข้อมูลทั้งหมดเกี่ยวกับ 'ใช้เปลี่ยนชื่อ Command บน Linux' คุณมีความคิดเห็นอย่างไรเกี่ยวกับเรื่องนี้? หากคุณต้องการแบ่งปันวิธีการหรือเคล็ดลับอื่น ๆ เกี่ยวกับบทความโปรดแจ้งให้เราทราบด้านล่าง สำหรับข้อสงสัยและคำถามเพิ่มเติมโปรดแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง!
ยังอ่าน:


