خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش استفاده از دستور basename در لینوکس

آموزش استفاده از دستور basename در لینوکس
basename یک ابزار خط فرمان است که دایرکتوری و پسوند انتهایی را از نام فایل های داده شده حذف می کند.

نرم افزار سامانه مودیان راهکار



بکارگیری دستور basename در لینوکس

Syntax کلی دستور basename بصورت یر می باشد:

basename NAME [SUFFIX]
basename OPTION... NAME...

دستور basename یک ورودی که نام فایل است را می گیرد و آخرین کامپوننت یا بخش فایل را نمایش می دهد. به صورت کاملا اختیاری و Optional، می تواند پسوند را حذف کند. basename یک دستور ساده است که تنها چند گزینه را می پذیرد. ساده ترین مثال، پرینت نام فایل با حذف دایرکتوری است:

basename /etc/passwd

در خروجی فقط نام فایل را نمایش می دهد:

passwd

دستور basename هر کاراکتر یا چیزی که پس از نام فایل باشد را حذف می کند. به مثال زیر دقت کنید:

basename /usr/local/
basename /usr/local

local
local

دستور basename حتی می تواند چندین فایل را به عنوان پارامتر بپذیرد. برای انجام این کار، دستور را با گزینه a- همراه کنید و سپس لیستی از فایل‌ها را که با فاصله از هم جدا شده‌اند، فراخوانی کنید. به عنوان مثال، برای دریافت نام فایل های etc/shadow و etc/passwd، دستور زیر را اجرا کنید:

basename -a /etc/passwd /etc/shadow

passwd
shadow

برای حذف پسوند و یا هر چیزی که در انتهای نام وجود دارد، کافیست مورد حذفی را به عنوان پارامتر دوم به دستور basename پاس دهید. به مثال زیر دقت کنید:

basename /etc/hostname name

host

به طور کلی، این ویژگی برای حذف پسوند فایل استفاده می شود:

basename /etc/sysctl.conf .conf

sysctl

راه دیگر برای حذف پسوند انتهایی این است که پسوند را با گزینه s- مشخص کنید.

basename -s .conf /etc/sysctl.conf

sysctl

همانطور که در ذیل مشاهده می کنید، دستور به ما این امکان را می دهد که هر پسوند انتهایی را از چندین نام حذف کنیم. به جای اینکه چندین بار دستور را برای چندین فایل اجرا کنیم، به یکبار می توانیم پسوند را از فایل ها حذف کنیم:

basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf

sysctl
sudo

مثال زیر نشان می دهد که چگونه می توان از دستور basename در bash for loop برای تغییر نام همه فایل هایی که با ".jpeg" ختم می شوند. در دایرکتوری جاری می خواهیم پسوند فایل را از jpeg به jpg تغییر دهیم.

for file in *.jpeg; do
mv -- "$file" "$(basename $file .jpeg).jpg"
done

دستور فوق هر فایل یا عکسی که پسوند jpeg داشته باشد، پسوند را به jpg تغییر می دهد.

نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز