亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Linux shell 之 提取文件名和目錄名的一些方法總結

2020-07-27 18:58:34
字體:
來源:轉載
供稿:網友

很多時候在使用Linux的shell時,我們都需要對文件名或目錄名進行處理,通常的操作是由路徑中提取出文件名,從路徑中提取出目錄名,提取文件后綴名等等。例如,從路徑/dir1/dir2/file.txt中提取也文件名file.txt,提取出目錄/dir1/dir2,提取出文件后綴txt等。

下面介紹兩種常用的方法來進行相關的操作。

一、使用${}

1、${var##*/}
該命令的作用是去掉變量var從左邊算起的最后一個'/'字符及其左邊的內容,返回從左邊算起的最后一個'/'(不含該字符)的右邊的內容。使用例子及結果如下:

從運行結果可以看到,使用該命令,可以提取出我們需要的文件名file.txt。

若使用時在shell程序文件中,可以使用變量來保存這個結果,再加以利用,如file=${var##*/}

2、${var##*.}

該命令的作用是去掉變量var從左邊算起的最后一個'.'字符及其左邊的內容,返回從左邊算起的最后一個'.'(不含該字符)的右邊的內容。使用例子及結果如下:

從運行結果可以看到,使用該命令,可以提取出我們需要的文件后綴。

如果文件的后綴不僅有一個,例如,file.tar.gz,命令${var##*.}僅能提取最后一個后綴,而我想提取tar.gz時該怎么辦?那么就要用下面所說的${var#*.}命令了。

3、${var#*.}

該命令的作用是去掉變量var從左邊算起的第一個'.'字符及其左邊的內容,返回從左邊算起第一個'.'(不含該字符)的右邊部分的內容。使用例子及結果如下:

從運行結果可以看到,使用該命令,可以提取出文件的多個后綴。

4、${var%/*}

該命令的使用是去掉變量var從右邊算起的第一個'/'字符及其右邊的內容,返回從右邊算起的第一個'/'(不含該字符)的左邊的內容。使用例子及結果如下:

從運行的結果可以看到,使用該命令,可以提取出我們需要的文件所在的目錄

5、${var%%.*}

該命令的使用是去掉變量var從右邊算起的最后一個'.'字符及其右邊的內容,返回從右邊算起的最后一個'.'(不含該字符)的左邊的內容。使用例子及結果如下:

當我們需要建立一個與文件名相同名字(沒有后綴)的目錄與對應的文件相對應時,就可以使用該命令來進行操作。例如,解壓文件的情況就與此類似,我們壓縮文件file.zip時,會在與file.zip同級目錄下建立一個名為file的目錄。

6、${}總結

其實${}并不是專門為提取文件名或目錄名的,它的使用是變量的提取和替換等等操作,它可以提取非常多的內容,并不一定是上面五個例子中的'/'或'.'。也就是說,上面的使用方法只是它使用的一個特例。

看到上面的這些命令,可能會讓人感到非常難以理解和記憶,其實不然,它們都是有規律的。

#:表示從左邊算起第一個

%:表示從右邊算起第一個

##:表示從左邊算起最后一個

%%:表示從右邊算起最后一個

換句話來說,#總是表示左邊算起,%總是表示右邊算起。

*:表示要刪除的內容,對于#和##的情況,它位于指定的字符(例子中的'/'和'.')的左邊,表于刪除指定字符及其左邊的內容;對于%和%%的情況,它位于指定的字符(例子中的'/'和'.')的右邊,表示刪除指定字符及其右邊的內容。這里的'*'的位置不能互換,即不能把*號放在#或##的右邊,反之亦然。

例如:${var%%x*}表示找出從右邊算起最后一個字符x,并刪除字符x及其右邊的字符。

看到這里,就可以知道,其實該命令的用途非常廣泛,上面只是指針文件名和目錄名的命名特性來進行提取的一些特例而已。

二、basename和dirname

${}并不是專門為提取文件名和目錄名設計的命令,那么basename和dirname命令就是專門為做這一件事而已準備的了。

1、basename

該命令的作用是從路徑中提取出文件名,使用方法為basename NAME [SUFFIX]。

1)從路徑中提出出文件名(帶后綴),例子如下:

2)從上面命令的用法中可以看到,后綴(SUFFIX)是一個可選項。所以,若只想提取出文件名file,而不帶有后綴,還可以在變量的后面加上后綴名,例子如下:

2、dirname

該命令的作用是從路徑中提取出目錄名,使用方法為 dirname NAME

使用例子如下:

這樣就提取出了file.txt文件所在的目錄。

注:該命令不僅能提取出普通文件所的目錄,它能提取出任何文件所在的目錄,例如目錄所在的目錄,如下:

它提取出了目錄dir2所在的目錄dir1.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲最大福利网| 欧美成在线观看| 中文字幕亚洲一区二区三区| 色妞色视频一区二区三区四区| 97涩涩爰在线观看亚洲| 性金发美女69hd大尺寸| 欧美疯狂性受xxxxx另类| 亚洲精品之草原avav久久| 欧美做受高潮1| 少妇高潮久久77777| 欧美精品在线看| 欧美性jizz18性欧美| 亚洲性夜色噜噜噜7777| 91网站免费观看| 亚洲香蕉在线观看| 亚洲精美色品网站| 精品久久久免费| 色噜噜国产精品视频一区二区| 国产91av在线| 精品美女永久免费视频| 亚洲欧美激情一区| 91亚洲国产成人久久精品网站| 中文字幕精品一区久久久久| 欧美男插女视频| 国产美女91呻吟求| 国产一区二区三区在线免费观看| 成人黄在线观看| 中文字幕无线精品亚洲乱码一区| 91夜夜未满十八勿入爽爽影院| 91影院在线免费观看视频| 欧美午夜精品久久久久久浪潮| 国产亚洲精品久久久久久| 亚洲一区久久久| 欧美大片免费看| 国产日韩av在线播放| 亚洲人成伊人成综合网久久久| 国产日韩欧美影视| 色噜噜狠狠色综合网图区| 国产精品99久久久久久白浆小说| 国外成人在线播放| 国产精品爽黄69天堂a| 亚洲影院在线看| 97国产在线观看| 欧美激情极品视频| 国产欧美日韩91| 日韩综合中文字幕| 成人免费视频网址| 日韩中文字幕在线视频播放| 国产精品99久久久久久久久久久久| 97在线精品国自产拍中文| 日韩激情视频在线播放| 欧美日韩激情小视频| 久久艳片www.17c.com| 久久久久久尹人网香蕉| 狠狠色狠色综合曰曰| 亚洲最大成人免费视频| 人妖精品videosex性欧美| 午夜精品久久久久久久99黑人| 日本一区二区在线播放| 国产成+人+综合+亚洲欧美丁香花| 视频在线观看一区二区| 精品久久久久久国产| 日韩欧美精品中文字幕| 亚洲欧洲av一区二区| 国产午夜精品全部视频播放| 亚洲精品在线观看www| 欧洲日本亚洲国产区| 亚洲xxxxx电影| 91av在线不卡| 欧美激情一区二区三区成人| 俺也去精品视频在线观看| 伊人久久久久久久久久久久久| 毛片精品免费在线观看| 亚洲视频电影图片偷拍一区| 538国产精品一区二区在线| 日韩成人在线视频观看| 国产精品亚发布| 日韩中文在线中文网在线观看| 成人福利视频在线观看| 亚洲第一区第二区| 成人自拍性视频| 中文字幕久久精品| 日韩免费黄色av| 国产久一一精品| 久久久久久有精品国产| 欧美国产日本在线| 亚洲欧洲日本专区| 国产男女猛烈无遮挡91| 中文字幕日本精品| 亚洲a中文字幕| 欧美性极品xxxx做受| 欧美国产日韩免费| 成人精品福利视频| 国产精品第10页| 欧美老女人性视频| 国产精品美女主播在线观看纯欲| 成人久久久久久久| 色播久久人人爽人人爽人人片视av| 亚洲自拍偷拍一区| 亚洲欧美福利视频| 中文字幕成人在线| 国产精品v日韩精品| 国内精品久久久久伊人av| 亚洲视频在线观看网站| 亚洲精品第一国产综合精品| 欧美日韩ab片| 国产91|九色| 国产精品自产拍在线观| 欧美日韩综合视频| 欧美日韩亚洲天堂| 欧美性猛交xxxxx水多| 欧美综合在线观看| 日韩免费看的电影电视剧大全| 欧美午夜xxx| 成人精品一区二区三区| 成人午夜在线影院| 九色精品免费永久在线| 欧美激情videoshd| 韩国美女主播一区| 日韩高清免费观看| 亚洲精品久久久久久下一站| 91精品视频专区| 亚洲色图25p| 亚洲欧美一区二区激情| 久久久精品视频在线观看| 综合欧美国产视频二区| 欧美激情小视频| 亚洲自拍偷拍色片视频| 欧美色视频日本版| 亚洲国产日韩欧美在线99| 色琪琪综合男人的天堂aⅴ视频| 亚洲欧美在线免费观看| 日韩三级成人av网| 欧美日韩国产综合新一区| 日韩av一区在线观看| 精品福利一区二区| 亚洲999一在线观看www| 精品国产视频在线| 日韩中文在线不卡| 国产91免费看片| 欧美日韩国产成人高清视频| 美日韩精品视频免费看| 精品色蜜蜜精品视频在线观看| 欧美日韩亚洲精品一区二区三区| 欧美激情区在线播放| 日韩国产精品一区| 欧美黄色免费网站| 久久久精品在线观看| 久久久女女女女999久久| 海角国产乱辈乱精品视频| 国产午夜精品一区理论片飘花| 中文字幕亚洲一区在线观看| 91老司机精品视频| 精品国产欧美成人夜夜嗨| 亚洲a在线播放| yw.139尤物在线精品视频| 日韩电影免费观看在线观看| 国产成人精品久久久| 国产精品第10页| 中文字幕不卡av| 亚洲国产精品大全| 黄色成人av网| 欧美精品videossex性护士| 日韩中文字幕国产|