![อ๊ะ ดูเหมือนว่าไคลเอนต์ Google Drive ใหม่ของ Google จะไม่มาบน Linux](/f/a643c091b4561b822ccbd82ef0b0ac61.jpg?width=100&height=100)
เรามักใช้ “mv” คำสั่งเปลี่ยนชื่อไฟล์เดียวใน ลินุกซ์. อย่างไรก็ตาม การเปลี่ยนชื่อไฟล์หลายไฟล์หรือหลายไฟล์อย่างรวดเร็วทำให้งานในเทอร์มินัลทำได้ยาก
ลินุกซ์ มาพร้อมกับเครื่องมือในตัวอันทรงพลังที่เรียกว่า เปลี่ยนชื่อ. NS เปลี่ยนชื่อ คำสั่งใช้เพื่อเปลี่ยนชื่อไฟล์หลายไฟล์หรือหลายกลุ่ม เปลี่ยนชื่อไฟล์เป็นตัวพิมพ์เล็ก เปลี่ยนชื่อไฟล์เป็นตัวพิมพ์ใหญ่และเขียนทับไฟล์โดยใช้นิพจน์ Perl
NS "เปลี่ยนชื่อ” คำสั่งเป็นส่วนหนึ่งของ Perl สคริปต์และอยู่ภายใต้ “/usr/bin/” บนลีนุกซ์รุ่นต่างๆ. คุณสามารถเรียกใช้ “ที่” เพื่อค้นหาตำแหน่งของคำสั่งเปลี่ยนชื่อ
$ ซึ่งเปลี่ยนชื่อ /usr/bin/rename
เปลี่ยนชื่อไฟล์ 's/old-name/new-name/'
คำสั่งเปลี่ยนชื่อมาพร้อมกับอาร์กิวเมนต์เสริมสองสามตัวพร้อมกับบังคับ นิพจน์ Perl ที่แนะนำการเปลี่ยนชื่อคำสั่งเพื่อทำงานจริง
เปลี่ยนชื่อ [ -v ] [ -n ] [ -f ] perlexpr [ ไฟล์ ]
เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับยูทิลิตี้นี้ เราได้พูดถึงตัวอย่างการใช้งานจริงของคำสั่งนี้ในบทความ
สมมติว่าคุณมีไฟล์จำนวนมากที่มี “.html” และคุณต้องการเปลี่ยนชื่อทั้งหมด “.html” ไฟล์ไปที่ “.php” ในครั้งเดียว ตัวอย่างเช่น ขั้นแรกให้ทำ “ลส -ล” เพื่อตรวจสอบรายการไฟล์ด้วย “.html" การขยาย.
# [ป้องกันอีเมล]:~$ ls -l. รวม 22532. -rw-rw-r-- 1 ravisaive ravisaive 6888896 10 ต.ค. 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 10 ต.ค. 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 10 ต.ค. 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 ต.ค. 12:10 lifestyle.html. -rw-rw-r-- 1 ravisaive ravisaive 938895 10 ต.ค. 12:10 news.html. -rw-rw-r-- 1 ravisaive ravisaive 938937 10 ต.ค. 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 ต.ค. 12:11 sports.html
ตอนนี้ คุณต้องการเปลี่ยนนามสกุลของไฟล์เหล่านี้ทั้งหมดจาก “.html" ถึง ".php“. คุณสามารถใช้สิ่งต่อไปนี้ “เปลี่ยนชื่อ” สั่งกับ นิพจน์ Perl ดังที่แสดงด้านล่าง
[ป้องกันอีเมล]:~$ เปลี่ยนชื่อ 's/\.html$/\.php/' *.html
บันทึก: ในคำสั่งด้านบนเราใช้อาร์กิวเมนต์สองข้อ
มาตรวจสอบว่าไฟล์ทั้งหมดถูกเปลี่ยนชื่อเป็น “.php” ขยาย ทำ ลส -ล บนพรอมต์
[ป้องกันอีเมล]:~$ ls -l. รวม 22532. -rw-rw-r-- 1 ravisaive ravisaive 6888896 10 ต.ค. 12:10 cricket.php -rw-rw-r-- 1 ravisaive ravisaive 588895 10 ต.ค. 12:10 entertainment.php -rw-rw-r-- 1 ravisaive ravisaive 6188895 10 ต.ค. 12:10 health.php -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 ต.ค. 12:10 lifestyle.php. -rw-rw-r-- 1 ravisaive ravisaive 938895 10 ต.ค. 12:10 news.php. -rw-rw-r-- 1 ravisaive ravisaive 938937 10 ต.ค. 12:11 photos.php -rw-rw-r-- 1 ravisaive ravisaive 978137 10 ต.ค. 12:11 sports.php
ตอนนี้คุณสามารถเห็นได้ว่าทั้งหมด html ไฟล์ถูกเปลี่ยนชื่อเป็น php.
ในขณะที่ทำการเปลี่ยนชื่อที่สำคัญหรือสำคัญ คุณสามารถตรวจสอบการเปลี่ยนแปลงได้ตลอดเวลาโดยเรียกใช้คำสั่งเปลี่ยนชื่อด้วย “-NS" การโต้เถียง. NS "-NSพารามิเตอร์ ” จะบอกคุณอย่างชัดเจนว่าการเปลี่ยนแปลงใดจะเกิดขึ้น แต่การเปลี่ยนแปลงนั้นไม่ได้เกิดขึ้นจริง นี่คือตัวอย่างของคำสั่งด้านล่าง
[ป้องกันอีเมล]:~$ เปลี่ยนชื่อ -n 's/\.php$/\.html/' *.php cricket.php เปลี่ยนชื่อเป็น cricket.html Entertainment.php เปลี่ยนชื่อเป็น entertainment.html health.php เปลี่ยนชื่อเป็น health.html Lifestyle.php เปลี่ยนชื่อเป็น lifestyle.html news.php เปลี่ยนชื่อเป็น news.html photos.php เปลี่ยนชื่อเป็น photos.html sports.php เปลี่ยนชื่อเป็น sports.html
บันทึก: เอาต์พุตคำสั่งด้านบนแสดงเฉพาะการเปลี่ยนแปลง แต่ในความเป็นจริง การเปลี่ยนแปลงจะไม่เสร็จสิ้น เว้นแต่คุณจะเรียกใช้คำสั่งโดยไม่มี "-NS" สวิตซ์.
เราเห็นว่าคำสั่งเปลี่ยนชื่อไม่แสดงข้อมูลการเปลี่ยนแปลงใด ๆ ดังนั้นหากต้องการทราบรายละเอียดของคำสั่งเปลี่ยนชื่อ (เหมือนที่เราใช้ “-NS” ตัวเลือก) ที่นี่เราใช้ “-v” เพื่อพิมพ์รายละเอียดการเปลี่ยนแปลงทั้งหมดที่ทำโดยการเปลี่ยนชื่อคำสั่งสำเร็จ
[ป้องกันอีเมล]:~$ เปลี่ยนชื่อ -v 's/\.php$/\.html/' *.php cricket.php เปลี่ยนชื่อเป็น cricket.html Entertainment.php เปลี่ยนชื่อเป็น entertainment.html health.php เปลี่ยนชื่อเป็น health.html Lifestyle.php เปลี่ยนชื่อเป็น lifestyle.html news.php เปลี่ยนชื่อเป็น news.html photos.php เปลี่ยนชื่อเป็น photos.html sports.php เปลี่ยนชื่อเป็น sports.html
ในการแบทช์เปลี่ยนชื่อไฟล์ทั้งหมดด้วย ตัวพิมพ์เล็ก ชื่อ to ตัวพิมพ์ใหญ่ ตัวอย่างเช่น ฉันต้องการปกปิดไฟล์ต่อไปนี้ทั้งหมดจาก ต่ำกว่า ถึง บน กรณี.
[ป้องกันอีเมล]:~$ ls -l. รวม 22532. -rw-rw-r-- 1 ravisaive ravisaive 6888896 10 ต.ค. 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 10 ต.ค. 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 10 ต.ค. 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 ต.ค. 12:10 lifestyle.html. -rw-rw-r-- 1 ravisaive ravisaive 938895 10 ต.ค. 12:10 news.html. -rw-rw-r-- 1 ravisaive ravisaive 938937 10 ต.ค. 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 ต.ค. 12:11 sports.html
เพียงใช้คำสั่งต่อไปนี้ด้วยนิพจน์ Perl
[ป้องกันอีเมล]:~$ เปลี่ยนชื่อ 'y/a-z/A-Z/' *.html
เมื่อคุณดำเนินการตามคำสั่งข้างต้นแล้ว คุณสามารถตรวจสอบการเปลี่ยนแปลงได้โดยทำ "ลส -ล“.
[ป้องกันอีเมล]:~$ ls -l. รวม 22532. -rw-rw-r-- 1 ravisaive ravisaive 6888896 10 ต.ค. 12:10 CRICKET.HTML. -rw-rw-r-- 1 ravisaive ravisaive 588895 10 ต.ค. 12:10 ENTERTAINMENT.HTML. -rw-rw-r-- 1 ravisaive ravisaive 6188895 10 ต.ค. 12:10 HEALTH.HTML. -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 ต.ค. 12:10 LIFESTYLE.HTML. -rw-rw-r-- 1 ravisaive ravisaive 938895 10 ต.ค. 12:10 NEWS.HTML. -rw-rw-r-- 1 ravisaive ravisaive 938937 10 ต.ค. 12:11 PHOTOS.HTML. -rw-rw-r-- 1 ravisaive ravisaive 978137 10 ต.ค. 12:11 SPORTS.HTML
คุณจะเห็นว่าคำสั่งดังกล่าวเปลี่ยนชื่อไฟล์ตัวพิมพ์เล็กทั้งหมด (with .HTML นามสกุล) เป็นตัวพิมพ์ใหญ่
ในทำนองเดียวกัน คุณยังสามารถแปลงทั้งหมด ตัวพิมพ์ใหญ่ ตัวอักษรถึง ตัวพิมพ์เล็ก โดยใช้คำสั่งต่อไปนี้
[ป้องกันอีเมล]:~$ เปลี่ยนชื่อ 'y/A-Z/a-z/' *.HTML
[ป้องกันอีเมล]:~$ ls -l. รวม 22532. -rw-rw-r-- 1 ravisaive ravisaive 6888896 10 ต.ค. 12:10 cricket.html -rw-rw-r-- 1 ravisaive ravisaive 588895 10 ต.ค. 12:10 entertainment.html -rw-rw-r-- 1 ravisaive ravisaive 6188895 10 ต.ค. 12:10 health.html -rw-rw-r-- 1 ravisaive ravisaive 6538895 10 ต.ค. 12:10 lifestyle.html. -rw-rw-r-- 1 ravisaive ravisaive 938895 10 ต.ค. 12:10 news.html. -rw-rw-r-- 1 ravisaive ravisaive 938937 10 ต.ค. 12:11 photos.html -rw-rw-r-- 1 ravisaive ravisaive 978137 10 ต.ค. 12:11 sports.html
หากต้องการใช้อักษรตัวแรกของชื่อไฟล์แต่ละชื่อเป็นตัวพิมพ์ใหญ่ให้ใช้คำสั่งต่อไปนี้
# เปลี่ยนชื่อ 's/\b(\w)/\U$1/g' *.ext.
หากคุณต้องการบังคับให้เขียนทับไฟล์ที่มีอยู่ ให้ใช้ปุ่ม “-NS” ตามที่แสดงด้านล่าง
[ป้องกันอีเมล]:~$ เปลี่ยนชื่อ -f 's/a/b/' *.html
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งเปลี่ยนชื่อ พิมพ์ “ผู้ชายเปลี่ยนชื่อ” ในเทอร์มินัล
NS เปลี่ยนชื่อ คำสั่งมีประโยชน์มาก หากคุณกำลังจัดการกับการเปลี่ยนชื่อไฟล์หลายไฟล์จากบรรทัดคำสั่ง ลองใช้ดูและแจ้งให้เราทราบว่าการเปลี่ยนชื่อไฟล์มีประโยชน์เพียงใด