خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
تغییر نام فایل ها بصورت یکجا به حروف کوچک انگلیسی در اوبونتو
در حین کار با لینوکس، ممکن است با برخی از ابزارها و برنامه هایی برخورد کنید که فقط با فایل هایی که نام انها از حروف کوچک انگلیسی باشد به درستی کار می کنند. حالا اگر فایل هایی داشته باشیم که نام آنها بصورت ترکیبی از حروف بزرگ و کوچک و یا فقط حروف بزرگ ایجاد شده باشد، در این صورت باید به دنبال راه حلی باشیم که با کمک آن بتوانیم نام تمامی فایل ها ر ابه حروف کوچک تبدیل کنیم.
در گام نخست Terminal را باز کرده و سپس دستور زیر را وارد و enter کنید تا کلیه فایل های موجود در دایرکتوری مثلا Downloads نمایش داده شود. البته شما دایرکتوری مورد نظر خودتان را می توانید جایگزین کنید.
در این روش، ما از دستورات اوبونتو Find، Xargs و rename استفاده خواهیم کرد تا به صورت بازگشتی نام همه فایلها/فولدرها را در یک دایرکتوری مشخص تغییر دهیم.
از آنجایی که ممکن است ابزار rename در سیستم شما نصب نباشد، با اجرای دستور زیر آن را نصب کنید.
من از دستور زیر برای تبدیل نام فایل ها به حروف کوچک در دایرکتوری Downloads استفاده خواهم کرد:
البته توجه داشته باشید که بین اسامی فایل ها نباید هیچ فاصله ای وجود داشته باشد تا دستور به درستی کار کند.
حالا اگر دوباره دستور اول اجرا کنید و محتویات دایرکتوری مربوطه را مشاهده کنید، خواهید دید که همه نام همه فایل ها به حروف کوچک انگلیسی تبدیل شده است.
در روش بعدی از یک bash script استفاده می کنیم که از دستورات find و mv برای تغییر نام فایل ها و فولدر ها به صورت بازگشتی، از جمله نام خود دایرکتوری استفاده می کند. پس در ترمینال به فولدر bin به صورت زیر بروید:
اکنون، یک فایل اسکریپت جدید را در یکی از ویرایشگرهای متن مورد علاقه خود باز کنید. مثلا برای باز کردن یک فایل اسکریپت خالی با نام smallcase_filenames.sh ما از ویرایشگر nano استفاده می کنیم. نام فایل را به دلخواه خودتان می توانید تغییر دهید.
سپس کدهای زیر را در آن کپی کنید:
سپس برای ذخیره فایل کلیدهای Ctrl+X را فشرده و در ادامه با مشاهده پیغام Save modified buffer، کلید y را تایپ و Enter کنید. بدین ترتیب فایل ذخیره شده و به خط فرمان برمی گردید.
برای اینکه این فایل را به یک اسکریپت اجرایی تبدیل کنید، دستور زیر را در ترمینال خود اجرا کنید:
اکنون شما آماده استفاده از اسکریپت در هر فولدری خود هستید. مثلا در دستور زیر، ما فولدر Downloads را انتخاب کرده ایم. با اجرای دستور، خواهید دید که همه فایل ها و حتی فولدرهای موجود در Downloads و حتی خود فولدر Downloads به حروف کوچک تبدیل می شوند. البته پیش از اجرای دستور به دایرکتوری home در ترمینال برمی گردیم و سپس دستور را اجرا می کنیم.
در گام نخست Terminal را باز کرده و سپس دستور زیر را وارد و enter کنید تا کلیه فایل های موجود در دایرکتوری مثلا Downloads نمایش داده شود. البته شما دایرکتوری مورد نظر خودتان را می توانید جایگزین کنید.
find Downloads -depth
در این روش، ما از دستورات اوبونتو Find، Xargs و rename استفاده خواهیم کرد تا به صورت بازگشتی نام همه فایلها/فولدرها را در یک دایرکتوری مشخص تغییر دهیم.
از آنجایی که ممکن است ابزار rename در سیستم شما نصب نباشد، با اجرای دستور زیر آن را نصب کنید.
sudo apt-get install rename
من از دستور زیر برای تبدیل نام فایل ها به حروف کوچک در دایرکتوری Downloads استفاده خواهم کرد:
find Downloads -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
البته توجه داشته باشید که بین اسامی فایل ها نباید هیچ فاصله ای وجود داشته باشد تا دستور به درستی کار کند.
حالا اگر دوباره دستور اول اجرا کنید و محتویات دایرکتوری مربوطه را مشاهده کنید، خواهید دید که همه نام همه فایل ها به حروف کوچک انگلیسی تبدیل شده است.
در روش بعدی از یک bash script استفاده می کنیم که از دستورات find و mv برای تغییر نام فایل ها و فولدر ها به صورت بازگشتی، از جمله نام خود دایرکتوری استفاده می کند. پس در ترمینال به فولدر bin به صورت زیر بروید:
cd ~bin
اکنون، یک فایل اسکریپت جدید را در یکی از ویرایشگرهای متن مورد علاقه خود باز کنید. مثلا برای باز کردن یک فایل اسکریپت خالی با نام smallcase_filenames.sh ما از ویرایشگر nano استفاده می کنیم. نام فایل را به دلخواه خودتان می توانید تغییر دهید.
sudo nano lowercase_filenames.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
exit 0
سپس برای ذخیره فایل کلیدهای Ctrl+X را فشرده و در ادامه با مشاهده پیغام Save modified buffer، کلید y را تایپ و Enter کنید. بدین ترتیب فایل ذخیره شده و به خط فرمان برمی گردید.
برای اینکه این فایل را به یک اسکریپت اجرایی تبدیل کنید، دستور زیر را در ترمینال خود اجرا کنید:
sudo chmod +x lowercase_filenames.sh
اکنون شما آماده استفاده از اسکریپت در هر فولدری خود هستید. مثلا در دستور زیر، ما فولدر Downloads را انتخاب کرده ایم. با اجرای دستور، خواهید دید که همه فایل ها و حتی فولدرهای موجود در Downloads و حتی خود فولدر Downloads به حروف کوچک تبدیل می شوند. البته پیش از اجرای دستور به دایرکتوری home در ترمینال برمی گردیم و سپس دستور را اجرا می کنیم.
lowercase_filenames.sh Downloads
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: