คู่มือผู้ใช้: ใช้เปลี่ยนชื่อ Command บน Linux

คุณเคยพยายามใช้คำสั่งเปลี่ยนชื่อบน ลินุกซ์ เหรอ? คุณต้องการที่จะจับกับโรงไฟฟ้าที่เปลี่ยนชื่อไฟล์ของโลก Linux และให้ mv - และพักผ่อนด้วยตัวคุณเอง การเปลี่ยนชื่อทำได้รวดเร็วยืดหยุ่นและค่อนข้างง่าย นี่คือคำแนะนำโดยละเอียดเกี่ยวกับโรงไฟฟ้าของคำสั่งนี้





เกิดอะไรขึ้นกับ mv?

ไม่มีอะไรผิดพลาดกับ mv . อย่างไรก็ตามคำสั่งทำงานได้ดี นอกจากนี้คุณสามารถพบได้ใน Linux ทุกรุ่นใน macOS และในระบบปฏิบัติการอื่น ๆ ที่คล้าย Unix อย่างไรก็ตามสามารถใช้ได้ตลอดเวลา แต่แน่นอนคุณไม่ต้องการพลั่ว แต่ต้องการรถปราบดิน



คำสั่ง mv มีจุดมุ่งหมายในชีวิตนั่นคือการย้ายไฟล์ เป็นผลข้างเคียงที่ปลอดภัยซึ่งสามารถใช้เพื่อย้ายไฟล์เก่าได้ เป็น ไฟล์ใหม่พร้อมชื่อใหม่ เอฟเฟกต์คือการเปลี่ยนชื่อไฟล์เพื่อให้คุณได้สิ่งที่ต้องการ แต่ mv ไม่ใช่เครื่องมือปรับแต่งการเปลี่ยนชื่อไฟล์

วิธีเปลี่ยนชื่อไฟล์เดียวด้วย mv

เปลี่ยนชื่อไฟล์บน Linux



หากคุณต้องการใช้ 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 แต่ทั้งหมดทำงานในลักษณะเดียวกัน คุณเพียงแค่แทนที่ชื่อคำสั่งที่ถูกต้องตามรสนิยมของ 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' คุณมีความคิดเห็นอย่างไรเกี่ยวกับเรื่องนี้? หากคุณต้องการแบ่งปันวิธีการหรือเคล็ดลับอื่น ๆ เกี่ยวกับบทความโปรดแจ้งให้เราทราบด้านล่าง สำหรับข้อสงสัยและคำถามเพิ่มเติมโปรดแจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง!

ยังอ่าน: