lệnh basename

basename là một tiện ích dòng lệnh tách thư mục và hậu tố theo sau khỏi tên tệp nhất định.

Sử dụng lệnh basename

Lệnh basename hỗ trợ hai định dạng cú pháp:

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

basename lấy tên tệp và in thành phần cuối cùng của tên tệp. Ngoài ra, nó cũng có thể xóa bất kỳ hậu tố theo sau nào. Đây là một lệnh đơn giản chỉ chấp nhận một số tùy chọn.

Ví dụ cơ bản nhất là in tên tệp đã xóa các thư mục phía trước:

basename /etc/passwd

Đầu ra sẽ bao gồm tên tệp:

passwd

Lệnh basename loại bỏ mọi dấu / ký tự:

basename /usr/local/basename /usr/local

Cả hai lệnh sẽ tạo ra cùng một đầu ra:

local
local

Theo mặc định, mỗi dòng đầu ra kết thúc bằng một ký tự dòng mới. Để kết thúc các dòng bằng NULL, hãy sử dụng tùy chọn -z--zero).

Nhiều đầu vào

Lệnh basename có thể chấp nhận nhiều tên như các đối số. Để làm như vậy, hãy gọi lệnh với tùy chọn -a--multiple), theo sau là danh sách các tệp được phân tách bằng dấu cách.

Ví dụ, để lấy tên tệp /etc/passwdvà /etc/shadow bạn sẽ chạy:

basename -a /etc/passwd /etc/shadow
passwd
shadow

Loại bỏ hậu tố theo sau

Để xóa bất kỳ hậu tố theo sau nào khỏi tên tệp, hãy chuyển hậu tố đó làm đối số thứ hai:

basename /etc/hostname name
host

Nói chung, tính năng này được sử dụng để tách phần mở rộng tệp:

basename /etc/sysctl.conf .conf
sysctl

Một cách khác để xóa hậu tố theo sau là chỉ định hậu tố bằng tùy chọn -s--suffix=SUFFIX):

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

Biểu mẫu cú pháp này cho phép bạn loại bỏ bất kỳ hậu tố theo sau nào khỏi nhiều tên:

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

Ví dụ

Ví dụ sau cho thấy cách sử dụng basename bên trong vòng lặp for  bash để đổi tên tất cả các tệp kết thúc bằng “.jpeg” trong thư mục hiện tại bằng cách thay thế phần mở rộng tệp từ “.jpeg” thành “.jpg”:

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

Nếu bạn đang sử dụng bash làm trình shell của mình, thay vì gọi basename, bạn có thể sử dụng phần mở rộng theo sau bằng cách sử dụng Mở rộng tham số Shell .

Phần kết luận

Các lệnh basename lọc ra đầu thư mục và dấu suffix từ tên.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, hãy để lại bình luận.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments