دستور basename یک ابزار خط فرمان است که پسوند دایرکتوری و فایل های داده شده را جدا می کند.
در ادامه با ما در شتابان هاست همراه باشید.
دستور basename از دو قالب نحوی پشتیبانی می کند:
basename NAME [SUFFIX] basename OPTION... NAME... basename یک نام پرونده را می گیرد و آخرین جز component نام پرونده را چاپ می کند. به صورت اختیاری ، همچنین می تواند هر پسوند دنباله دار را حذف کند. این یک دستور ساده است که فقط چند گزینه را می پذیرد.
ابتدایی ترین نمونه این است که نام فایل را با فهرست راهنمای اصلی حذف کنید:
basename /etc/passwd خروجی شامل نام پرونده خواهد بود:
passwd دستور basename هر گونه دنباله / نویسه را حذف می کند:
basename /usr/local/basename /usr/local
هر دو دستور خروجی یکسانی را تولید می کنند:
local local به طور پیش فرض ، هر خط خروجی به یک خط جدید منتهی می شود. برای پایان دادن به خطوط با NUL ، از گزینه -z (–zero) استفاده کنید.
دستور basename می تواند چندین نام را به عنوان آرگومان بپذیرد. برای انجام این کار ، دستور را با گزینه -a (–multiple) فراخوانی کنید و به دنبال آن لیست فایل های جدا شده با فاصله را دنبال کنید.
به عنوان مثال ، برای بدست آوردن نام پرونده های / etc / passwd و / etc / shadow شما اجرا می کنید:
basename -a /etc/passwd /etc/shadow خروجی:
passwd shadow برای حذف هر پسوند انتهایی از نام پرونده ، پسوند را به عنوان آرگومان دوم وارد کنید:
basename /etc/hostname name خروجی:
name به طور کلی ، این ویژگی برای سلب کردن پسوندهای پرونده استفاده می شود:
basename /etc/sysctl.conf .conf خروجی:
sysctl روش دیگر برای حذف پسوند انتهایی تعیین پسوند با گزینه -s (–suffix = SUFFIX):
basename -s .conf /etc/sysctl.conf خروجی:
sysctl این فرم نحوی به شما امکان می دهد هر پسوند دنباله دار را از چندین نام حذف کنید:
basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf خروجی:
sysctl sudo مثال زیر نحوه استفاده از دستور basename را در داخل bash for loop نشان می دهد تا با جایگزینی پسوند پرونده از “.jpeg” به “.jpg” ، تمام پرونده های پایان یافته با “.jpeg” را در فهرست فعلی تغییر نام دهید:
for file in *.jpeg; do mv -- "$file" "$(basename $file .jpeg).jpg" done اگر از bash به عنوان پوسته خود استفاده می کنید ، به جای فراخوانی نام اصلی ، می توانید از پسوند دنباله ای با استفاده از Shell Parameter Expansion استفاده کنید.
دستور basename هر دایرکتوری اصلی و پسوند دنباله ای را از نام جدا می کند.
امیدوارم این مقاله براتون مفید بوده باشه.
ما رو تو شتابان هاست دنبال کنید