共計 1719 個字符,預計需要花費 5 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Linux 中如何使用 Basename 命令,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
basename 是一個命令行中實用的小工具,可從給定的文件名中刪除目錄和后綴。
系統環境
Centos7
如何使用 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
以上代碼可復制粘貼,可往左滑 圖片
看完了這篇文章,相信你對“Linux 中如何使用 Basename 命令”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!