Linux系統中的basename命令使用例項
basename是一個命令行中實用的小工具,可從給定的檔名中刪除目錄和字尾。 |
系統環境
如何使用basename命令
在Centos7系統中,已經預設安裝了basename
命令了,該命令包含在coreutils
安裝包裡。
basename
有兩種語法:
basename NAME [SUFFIX] basename OPTION... NAME...
basename最後一部分。也可以刪除任何結尾的字尾。這是一個簡單的命令,最基本的是去掉檔案明前面的目錄並打印出來:
[root@localhost ~]# basename /etc/yum.repos.d/CentOS-Base.repo CentOS-Base.repo
basename命令預設刪除所有結尾的/
字元:
[root@localhost ~]# basename /usr/local/ local [root@localhost ~]# basename /usr/local local
預設情況下,每條輸出行以換行符(\n)結尾。要以NUL結尾,請使用-z(--zero)選項。
[root@localhost ~]# basename -z /usr/local local[root@localhost ~]#
basename接受多個檔案
basename命令可以接受多個名稱作為引數。可以使用-a(--multiple)選項,然後使用空格分隔檔案列表。例如,要獲取/etc/passwd和/etc/shadow的檔名,可以執行:
[root@localhost ~]# basename -a /etc/passwd /etc/shadow passwd shadow
刪除指定結尾的字尾
要從檔名中刪除任何結尾的字尾,請將字尾作為第二個引數傳遞:
[root@localhost ~]# basename /etc/hostname name host 另一種方法: [root@localhost ~]# basename -s name /etc/hostname host
上面例子中,指定name為字尾,可以看到輸出結果中只顯示/
後面和name
前面的內容了。
通常,此功能用於刪除檔案的副檔名:
[root@localhost ~]# basename -s .conf /etc/httpd/conf/httpd.conf httpd 或者 [root@localhost ~]# basename /etc/httpd/conf/httpd.conf .conf httpd
下面例子,使用-a選項指定多個檔案,-s選項指定字尾內容:
[root@localhost ~]# basename -a -s .conf /etc/sysctl.conf /etc/httpd/conf/httpd.conf sysctl httpd
刪除末尾字尾的另一種方法是使用-s(--suffix = SUFFIX)選項指定字尾。上面例項中以展現。
使用例項
以下示例顯示瞭如何在bash指令碼中使用for迴圈、mv命令和basename命令,通過將當前目錄下面的圖片檔案,副檔名從“ .jpg”替換為“ .jpeg”:
[root@localhost test]# vim convert.sh #!/bin/bash for file in *.jpg do mv "$file" "$(basename $file .jpg).jpeg" done
總結
basename是一個命令列實用程式,可從給定的檔名中刪除目錄和字尾。
「其他文章」
- findmnt命令查詢已掛載的檔案系統
- 在Linux中如何檢視檔案的修改日期
- 用FRP做內網穿透使用遠端桌面連線家裡的windows電腦
- SUSE Linux 的Zypper包管理器使用例項
- 如何使用nload實時監控網路頻寬
- 如何使用awk處理文字內容
- 如何將CentOS 8轉換為CentOS Stream
- 如何自動接受SSH金鑰指紋?
- 夏天到了用TypeScript給自己開個小空調吧
- Bash Shell指令碼中的陣列使用例項
- Linux系統中的basename命令使用例項
- centos8使用chrony作為NTP伺服器
- Linux中如何使用Aria2下載檔案
- Centos8 如何配置DHCP伺服器
- 如何在Shell指令碼中逐行讀取檔案
- 使用Systemctl命令來管理系統服務
- 使用lsblk命令列出系統中的塊裝置
- 如何在Linux中使用 Truncate 命令
- Centos8種如何更改執行級別
- Zeit – Linux圖形化中定時任務的工具