ປ່ຽນຊື່ - ເຄື່ອງມືເສັ້ນ ຄຳ ສັ່ງ ສຳ ລັບການປ່ຽນຊື່ຫລາຍໆເອກະສານໃນ Linux


ພວກເຮົາມັກໃຊ້ ຄຳ ສັ່ງ“ mv” ເພື່ອປ່ຽນຊື່ໄຟລ໌ດຽວໃນ Linux. ເຖິງຢ່າງໃດກໍ່ຕາມ, ການປ່ຽນຊື່ໄຟລ໌ຫຼາຍຫຼືຫຼາຍກຸ່ມຢ່າງໄວວາເຮັດໃຫ້ມັນມີຄວາມຫຍຸ້ງຍາກຫຼາຍໃນສະຖານີ.

Linux ມາພ້ອມກັບເຄື່ອງມືທີ່ມີປະສິດຕິພາບສູງທີ່ມີຊື່ວ່າ rename. ຄຳ ສັ່ງປ່ຽນຊື່ແມ່ນໃຊ້ເພື່ອປ່ຽນຊື່ຫລາຍຫລືກຸ່ມຂອງແຟ້ມ, ປ່ຽນຊື່ໄຟລ໌ໃຫ້ເປັນຕົວນ້ອຍ, ປ່ຽນຊື່ໄຟລ໌ໃຫ້ເປັນຮູບໃຫຍ່ແລະຂຽນທັບແຟ້ມໂດຍໃຊ້ perl expression.

ຄຳ ສັ່ງ“ ປ່ຽນຊື່” ແມ່ນສ່ວນ ໜຶ່ງ ຂອງອັກສອນ Perl ແລະມັນຢູ່ພາຍໃຕ້“/usr/bin /” ໃນການແຈກແຈງ Linux ຈຳ ນວນຫລາຍ. ທ່ານສາມາດ ດຳ ເນີນການ ຄຳ ສັ່ງ“ ເຊິ່ງ” ເພື່ອຊອກຫາທີ່ຕັ້ງຂອງການປ່ຽນຊື່ ຄຳ ສັ່ງ.

$ which rename
/usr/bin/rename
rename 's/old-name/new-name/' files

ຄຳ ສັ່ງປ່ຽນຊື່ແມ່ນມາພ້ອມກັບການໂຕ້ຖຽງທາງເລືອກບໍ່ຫຼາຍປານໃດພ້ອມດ້ວຍການສະແດງອອກທີ່ ຈຳ ເປັນເຊິ່ງຊີ້ ນຳ ການປ່ຽນຊື່ ຄຳ ສັ່ງໃຫ້ເຮັດວຽກຕົວຈິງ.

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

<

  • -v: ພິມຊື່ຂອງແຟ້ມທີ່ປ່ຽນຊື່ ສຳ ເລັດແລ້ວ.
  • -n: ສະແດງແຟ້ມເອກະສານທີ່ຈະຖືກປ່ຽນຊື່.
  • -f: ບັງຄັບໃຫ້ຂຽນທັບແຟ້ມທີ່ມີຢູ່ແລ້ວ.
  • perlexpr: Perl Expression.
  • ເພື່ອຄວາມເຂົ້າໃຈທີ່ດີຂື້ນກ່ຽວກັບຜົນປະໂຫຍດນີ້, ພວກເຮົາໄດ້ປຶກສາຫາລືກ່ຽວກັບຕົວຢ່າງການ ນຳ ໃຊ້ຂອງ ຄຳ ສັ່ງນີ້ໃນບົດຂຽນ.

    1. ຕົວຢ່າງ ຄຳ ສັ່ງປ່ຽນຊື່ພື້ນຖານ

    ສົມມຸດວ່າທ່ານມີເອກະສານທີ່ມີ“ .html” ສ່ວນຂະຫຍາຍແລະທ່ານຕ້ອງການປ່ຽນຊື່ໄຟລ໌ທັງ ໝົດ“ .html” ເປັນ“ .php” ໃນເວລາດຽວ. ຍົກຕົວຢ່າງ, ທຳ ອິດເຮັດ“ ls -l” ເພື່ອກວດເບິ່ງລາຍຊື່ຂອງເອກະສານທີ່ມີ“ .html” ສ່ວນຂະຫຍາຍ.

    # [email :~$ ls -l
    total 22532
    -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
    -rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
    -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
    -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
    -rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
    -rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
    -rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

    ດຽວນີ້, ທ່ານຕ້ອງການປ່ຽນແປງການຂະຫຍາຍເອກະສານທັງ ໝົດ ເຫຼົ່ານີ້ຈາກ“ .html” ຫາ“ .php“. ທ່ານສາມາດໃຊ້ ຄຳ ສັ່ງ“ ປ່ຽນຊື່ສຽງ” ຕໍ່ໄປນີ້ດ້ວຍການສະແດງ perl ຕາມຮູບຂ້າງລຸ່ມ.

    [email :~$ rename 's/\.html$/\.php/' *.html

    ໝາຍ ເຫດ: ໃນ ຄຳ ສັ່ງຂ້າງເທິງນີ້ພວກເຮົາໄດ້ ນຳ ໃຊ້ສອງການໂຕ້ຖຽງ.

    <

  • ການໂຕ້ຖຽງຄັ້ງ ທຳ ອິດແມ່ນ ຄຳ ສະແດງ perl ທີ່ປ່ຽນແທນ .html ດ້ວຍ .php.
  • ການໂຕ້ຖຽງຄັ້ງທີສອງບອກການປ່ຽນຊື່ ຄຳ ສັ່ງໃຫ້ປ່ຽນໄຟລ໌ທັງ ໝົດ ດ້ວຍ * .php.
  • ໃຫ້ກວດພິສູດວ່າແຟ້ມທັງ ໝົດ ຖືກປ່ຽນຊື່ເປັນ ".php" ນາມສະກຸນ, ເຮັດຫຍັງຢູ່ໃນການກະຕຸ້ນ

    [email :~$ ls -l
    total 22532
    -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.php
    -rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.php
    -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.php
    -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.php
    -rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.php
    -rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.php
    -rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.php

    ຕອນນີ້ທ່ານສາມາດເຫັນຢູ່ຂ້າງເທິງວ່າທຸກເອກະສານ html ຖືກປ່ຽນຊື່ເປັນ php.

    2. ກວດກາການປ່ຽນແປງກ່ອນທີ່ຈະປ່ຽນຊື່ Command

    ໃນຂະນະທີ່ເຮັດ ໜ້າ ທີ່ປ່ຽນຊື່ ສຳ ຄັນຫລືປ່ຽນຊື່ ສຳ ຄັນ, ທ່ານສາມາດກວດສອບການປ່ຽນແປງໂດຍການປ່ຽນຊື່ ຄຳ ສັ່ງດ້ວຍການໂຕ້ຖຽງ“ -n”. ພາລາມິເຕີ "-n" ຈະບອກທ່ານຢ່າງແນ່ນອນວ່າການປ່ຽນແປງຈະເກີດຫຍັງຂຶ້ນ, ແຕ່ວ່າການປ່ຽນແປງບໍ່ໄດ້ເຮັດແທ້. ນີ້, ແມ່ນຕົວຢ່າງຂອງ ຄຳ ສັ່ງຂ້າງລຸ່ມ.

    [email :~$ rename -n 's/\.php$/\.html/' *.php
    
    cricket.php renamed as cricket.html
    entertainment.php renamed as entertainment.html
    health.php renamed as health.html
    lifestyle.php renamed as lifestyle.html
    news.php renamed as news.html
    photos.php renamed as photos.html
    sports.php renamed as sports.html

    ໝາຍ ເຫດ: ຜົນຜະລິດ ຄຳ ສັ່ງຂ້າງເທິງພຽງແຕ່ສະແດງການປ່ຽນແປງ, ແຕ່ໃນຕົວຈິງການປ່ຽນແປງບໍ່ໄດ້ເຮັດ, ເວັ້ນເສຍແຕ່ວ່າທ່ານ ດຳ ເນີນການ ຄຳ ສັ່ງໂດຍບໍ່ຕ້ອງປ່ຽນ“ -n”.

    3. ພິມຊື່ອອກຊື່ຜົນໄດ້ຮັບ

    ພວກເຮົາໄດ້ເຫັນວ່າ ຄຳ ສັ່ງປ່ຽນຊື່ບໍ່ໄດ້ສະແດງຂໍ້ມູນການປ່ຽນແປງໃດໆທີ່ມັນເຮັດ. ດັ່ງນັ້ນ, ຖ້າທ່ານຕ້ອງການເອົາລາຍລະອຽດຂອງການປ່ຽນຊື່ ຄຳ ສັ່ງ (ຄືກັບທີ່ພວກເຮົາໄດ້ໃຊ້ຕົວເລືອກ“ -n”), ນີ້ພວກເຮົາໃຊ້ຕົວເລືອກ“ -v” ເພື່ອພິມລາຍລະອຽດຄົບຖ້ວນຂອງການປ່ຽນແປງທັງ ໝົດ ທີ່ເຮັດໂດຍການປ່ຽນຊື່ ຄຳ ສັ່ງຢ່າງປະສົບຜົນ ສຳ ເລັດ.

    [email :~$ rename -v 's/\.php$/\.html/' *.php
    
    cricket.php renamed as cricket.html
    entertainment.php renamed as entertainment.html
    health.php renamed as health.html
    lifestyle.php renamed as lifestyle.html
    news.php renamed as news.html
    photos.php renamed as photos.html
    sports.php renamed as sports.html

    4. ແປງລົດນ້ອຍທັງ ໝົດ ເປັນ Uppercase ແລະ Vise-Versa

    ເພື່ອປ່ຽນຊື່ແຟ້ມທັງ ໝົດ ທີ່ມີຊື່ກໍລະນີຕ່ ຳ ໄປເປັນໂຕໃຫຍ່. ຕົວຢ່າງ, ຂ້ອຍຕ້ອງການປົກປິດເອກະສານຕໍ່ໄປນີ້ທັງ ໝົດ ຈາກຕົວອັກສອນນ້ອຍຫາໃຫຍ່.

    [email :~$ ls -l
    total 22532
    -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
    -rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
    -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
    -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
    -rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
    -rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
    -rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

    ພຽງແຕ່, ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ດ້ວຍການສະແດງ perl.

    [email :~$ rename 'y/a-z/A-Z/' *.html

    ເມື່ອທ່ານປະຕິບັດ ຄຳ ສັ່ງຂ້າງເທິງ, ທ່ານສາມາດກວດເບິ່ງການປ່ຽນແປງໂດຍການເຮັດ“ ls-l“.

    [email :~$ ls -l
    total 22532
    -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 CRICKET.HTML
    -rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 ENTERTAINMENT.HTML
    -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 HEALTH.HTML
    -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 LIFESTYLE.HTML
    -rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 NEWS.HTML
    -rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 PHOTOS.HTML
    -rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 SPORTS.HTML

    ທ່ານສາມາດເຫັນໄດ້ວ່າ ຄຳ ສັ່ງຂ້າງເທິງນີ້ໄດ້ປ່ຽນຊື່ຕົວອັກສອນທັງ ໝົດ ທີ່ມີຊື່ນ້ອຍ (ມີນາມສະກຸນ .HTML) ໃສ່ກໍລະນີໃຫຍ່.

    ເຊັ່ນດຽວກັນ, ທ່ານຍັງສາມາດປ່ຽນຕົວອັກສອນໃຫຍ່ທັງ ໝົດ ເປັນຕົວອັກສອນນ້ອຍລົງໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    [email :~$ rename 'y/A-Z/a-z/' *.HTML
    [email :~$ ls -l
    total 22532
    -rw-rw-r-- 1 ravisaive ravisaive 6888896 Oct 10 12:10 cricket.html
    -rw-rw-r-- 1 ravisaive ravisaive  588895 Oct 10 12:10 entertainment.html
    -rw-rw-r-- 1 ravisaive ravisaive 6188895 Oct 10 12:10 health.html
    -rw-rw-r-- 1 ravisaive ravisaive 6538895 Oct 10 12:10 lifestyle.html
    -rw-rw-r-- 1 ravisaive ravisaive  938895 Oct 10 12:10 news.html
    -rw-rw-r-- 1 ravisaive ravisaive  938937 Oct 10 12:11 photos.html
    -rw-rw-r-- 1 ravisaive ravisaive  978137 Oct 10 12:11 sports.html

    5. ຈົດ ໝາຍ ປະກອບເອກະສານຈົດ ໝາຍ ສະບັບ ທຳ ອິດ

    ເພື່ອລົງທືນພຽງແຕ່ຈົດ ໝາຍ ສະບັບ ທຳ ອິດຂອງແຕ່ລະ filename ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    # rename 's/\b(\w)/\U$1/g' *.ext
    

    6. Overwrite Files ທີ່ມີຢູ່ແລ້ວ

    ຖ້າທ່ານຕ້ອງການຂຽນທັບແຟ້ມຂໍ້ມູນທີ່ມີຢູ່, ໃຊ້ຕົວເລືອກ“ -f” ດັ່ງຮູບຂ້າງລຸ່ມນີ້.

    [email :~$ rename -f 's/a/b/' *.html

    ຖ້າທ່ານຕ້ອງການຢາກຮູ້ເພີ່ມເຕີມກ່ຽວກັບການປ່ຽນຊື່ ຄຳ ສັ່ງ, ໃຫ້ພິມ ຄຳ ວ່າ“ man rename” ຢູ່ປາຍທາງ.

    ຄຳ ສັ່ງປ່ຽນຊື່ແມ່ນມີປະໂຫຍດຫຼາຍ, ຖ້າທ່ານ ກຳ ລັງຈັດການກັບການປ່ຽນຊື່ຫຼາຍຄັ້ງຫຼືຫຼາຍຄັ້ງຈາກແຟ້ມ ຄຳ ສັ່ງ. ຢ່າພະຍາຍາມແລະແຈ້ງໃຫ້ຂ້ອຍຊາບ, ມັນມີປະໂຫຍດຫຼາຍປານໃດກ່ຽວກັບການປ່ຽນຊື່ໄຟລ໌.