您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“Linux中的命令使用實例分析”。內容詳細易懂,對“Linux中的命令使用實例分析”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“Linux中的命令使用實例分析”的知識吧。
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中的命令使用實例分析就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。