ປ່ຽນຊື່ໄຟລ໌ແລະຊື່ໄດເລກະທໍລີທັງ ໝົດ ໃຫ້ເປັນຕົວນ້ອຍໃນ Linux


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

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

# find Files -depth

1. ການນໍາໃຊ້ຊອກຫາ, xargs ແລະປ່ຽນຊື່ Commands ຮ່ວມກັນ

ຊອກຫາສິ່ງ ອຳ ນວຍຄວາມສະດວກໃນການປ່ຽນຊື່ແຟ້ມທັງ ໝົດ ຫຼືໄດເລກະທໍລີຍ່ອຍໃນໄດເລກະທໍລີເສພາະເພື່ອເປັນຕົວນ້ອຍທີ່ມີດັ່ງຕໍ່ໄປນີ້:

$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

ຄໍາອະທິບາຍຂອງທາງເລືອກທີ່ໃຊ້ໃນຄໍາສັ່ງຂ້າງເທິງ.

  • -depth - ລາຍຊື່ແຕ່ລະລາຍການຂອງໄດເລກະທໍລີກ່ອນໄດເລກະທໍລີເອງ.
  • -n 1 - ແນະ ນຳ ໃຫ້ໃຊ້ xargs ໃນການໂຕ້ຖຽງຫຼາຍຄັ້ງ ໜຶ່ງ ຕໍ່ແຖວ ຄຳ ສັ່ງຈາກຜົນການຊອກຫາ.

ຜົນຜະລິດຕົວຢ່າງຫຼັງຈາກປ່ຽນຊື່ໄຟລ໌ແລະໄດເລກະທໍລີຍ່ອຍໃຫ້ນ້ອຍຢູ່ໃນ ແຟ້ມເອກະສານ .

ອີກວິທີ ໜຶ່ງ ທາງເລືອກໂດຍໃຊ້ ຄຳ ສັ່ງ mv ໃນສະຄິບທີ່ໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້.

2. ການໃຊ້ຊອກຫາແລະ mv Commands ໃນ Shell Script

ທຳ ອິດສ້າງສະຄິບຂອງທ່ານ (ທ່ານສາມາດໃສ່ຊື່ທຸກຢ່າງທີ່ທ່ານຕ້ອງການ):

$ cd ~/bin
$ vi rename-files.sh

ຫຼັງຈາກນັ້ນ, ຕື່ມລະຫັດຂ້າງລຸ່ມນີ້ໃນມັນ.

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

ບັນທຶກແລະປິດເອກະສານ, ຫຼັງຈາກນັ້ນເຮັດໃຫ້ສະຄິບສາມາດປະຕິບັດໄດ້ແລະ ດຳ ເນີນການມັນ:

$ chmod +x rename-files.sh
$ rename-files.sh Files     #Specify Directory Name

ທ່ານອາດຈະມັກອ່ານບົດຄວາມທີ່ກ່ຽວຂ້ອງດັ່ງຕໍ່ໄປນີ້.

<

  • ຄຳ ອະທິບາຍກ່ຽວກັບ“ ທຸກຢ່າງແມ່ນເອກະສານ” ແລະປະເພດຂອງໄຟລ໌ໃນ Linux
  • fswatch - ເອກະສານຕິດຕາມແລະການປ່ຽນແປງໄດເລກະທໍລີຫຼືດັດແປງໃນ Linux
  • Fasd - ເຄື່ອງມືໃສ່ເສັ້ນ ຄຳ ສັ່ງທີ່ໃຫ້ບໍລິການເຂົ້າເຖິງແຟ້ມແລະໄດເລກະທໍລີຢ່າງວ່ອງໄວ
  • FSlint - ວິທີການຄົ້ນຫາແລະລຶບໄຟລ໌ທີ່ຊ້ ຳ ກັນໃນ Linux
  • ໃນຄູ່ມືນີ້, ພວກເຮົາໄດ້ເລັ່ງທ່ານກ່ຽວກັບການປ່ຽນຊື່ໄຟລ໌ແລະໄດເລກະທໍລີທັງ ໝົດ ໄປເປັນຕົວນ້ອຍໃນ Linux. ຖ້າມີຂໍ້ຜິດພາດ, ກະລຸນາກົດຕິດຕາມພວກເຮົາແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້. ທ່ານສາມາດສະ ເໜີ ວິທີການເຮັດແບບດຽວກັນກັບພວກເຮົາໄດ້ເຊັ່ນກັນ.