新聞中心
在Linux系統(tǒng)中,獲取文件名是一個(gè)非常常見(jiàn)的操作,無(wú)論是在命令行中還是在編寫腳本時(shí),都有可能需要獲取文件名。下面將介紹幾種常見(jiàn)的獲取文件名的方法。

在成都做網(wǎng)站、網(wǎng)站建設(shè)中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營(yíng)銷成為有效果、有回報(bào)的無(wú)錫營(yíng)銷推廣。創(chuàng)新互聯(lián)公司專業(yè)成都網(wǎng)站建設(shè)10多年了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
一、使用basename命令
basename命令可以用來(lái)獲取路徑中的文件名,語(yǔ)法如下:
$ basename [path]
其中,[path]為文件路徑,可以是絕對(duì)路徑或相對(duì)路徑。如果不指定[path],則默認(rèn)使用當(dāng)前目錄。
例如,如果要獲取路徑為”/home/user/test.txt”的文件名,可以使用以下命令:
$ basename /home/user/test.txt
輸出結(jié)果為:
test.txt
如果要獲取當(dāng)前目錄下名為”test.sh”的文件名,可以使用以下命令:
$ basename test.sh
輸出結(jié)果為:
test.sh
二、使用${var##*/}語(yǔ)法
${var##*/}語(yǔ)法可以用來(lái)獲取文件名,其中var是文件路徑變量。
例如,假設(shè)有一個(gè)文件路徑變量path為”/home/user/test.txt”,則可以使用以下語(yǔ)句獲取文件名:
$ echo ${path##*/}
輸出結(jié)果為:
test.txt
如果要獲取當(dāng)前目錄下名為”test.sh”的文件名,可以使用以下語(yǔ)句:
$ echo ${PWD##*/}/test.sh
其中,${PWD##*/}表示當(dāng)前目錄的文件名。
輸出結(jié)果為:
/Users/user/test.sh
三、使用cut命令
cut命令可以用來(lái)分割文本,因此也可以用來(lái)獲取文件名。例如,如果要獲取路徑為”/home/user/test.txt”的文件名,可以使用以下命令:
$ echo “/home/user/test.txt” | cut -d ‘/’ -f 4
其中,-d指定分隔符為”/”,-f指定輸出第4個(gè)字段(即文件名)。
輸出結(jié)果為:
test.txt
如果要獲取當(dāng)前目錄下名為”test.sh”的文件名,可以使用以下命令:
$ echo $PWD/test.sh | cut -d ‘/’ -f 5
其中,$PWD表示當(dāng)前目錄的路徑,-d指定分隔符為”/”,-f指定輸出第5個(gè)字段(即文件名)。
輸出結(jié)果為:
test.sh
綜上所述,通過(guò)使用basename命令、${var##*/}語(yǔ)法和cut命令,可以方便地獲取文件名。在實(shí)際工作中,可以根據(jù)實(shí)際需求選擇適合的方法,提高工作效率。
相關(guān)問(wèn)題拓展閱讀:
- linux下按文件名和文件內(nèi)容查找文件
- Linux批量提取文件名
- 如何用shell獲取linux目錄下的文件名
linux下按文件名和文件內(nèi)容查找文件
在當(dāng)前目錄下,查找所有內(nèi)容包含‘a(chǎn)bc’的文件
find . -type f | xargs grep -l ‘a(chǎn)bc’
或
find . -type f -exec grep -l ‘a(chǎn)bc’ {} \;
擴(kuò)信鉛展資料:
linux查找文件命令find
根據(jù)部分文件名查找方法:
這個(gè)方法和在WINDOWS中查找已知的文件名方法是一樣的。不過(guò)在Linux中根據(jù)部分文件名查找文件的方法要比在WINDOWS中的同類查找方法要強(qiáng)大得多。
例如我們知道某個(gè)文件包含有srm這3個(gè)字母,那么要找到系統(tǒng)中所有包含有這3個(gè)字母的文件是可以實(shí)現(xiàn)的,輸入:
find /etc -name ‘*srm*’
這個(gè)命令表明了Linux系統(tǒng)將在/etc整個(gè)目錄中滑察好查找所有的包含有srm這3個(gè)字母的文件,比如 absrmyz, tibc.srm等等符合條件的文件都能顯示出來(lái)。如果你還知道這個(gè)文件是由srm 這3個(gè)字母打頭的,那么我們還可以省略最前面沒(méi)辯的星號(hào),命令如下:
find/etc -name ‘srm*’
這是只有像srmyz 這樣的文件才被查找出來(lái),象absrmyz或者 absrm這樣的文件都不符合要求,不被顯示,這樣查找文件的效率和可靠性就大大增強(qiáng)了。
Linux批量提取文件名
簡(jiǎn)單的獲取耐讓文件名的話,可以輸入命令:ls,如果需要把整個(gè)老圓磁盤所有文件名字打出的話,需要寫個(gè)腳本,循環(huán)遞昌含局歸下。
如何用shell獲取linux目錄下的文件名
可能要用的awk
獲取所有常規(guī)文件的文件名并打印出來(lái)的腳本listfile.sh如下
#!/bin/bash
dir=”/*”
dir=$1$dir
for f in $dir
do
if
then
echo $f
fi
done
使用方法喚芹:
$ listfile.sh PATH
原理:
PATH參數(shù)是路徑棗滑,將路徑后加上“/*”,代表該目錄下的和巖畢所有文件和目錄名,利用for循環(huán)比較每個(gè)文件是否是常規(guī)文件( -f比較運(yùn)算符),若if表達(dá)式為真則打印
舉例:
ls -l
total 36
-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.sh
drwxrwxr-x 2 lipeng lipeng 4096 Maybyteorder
drwxrwxr-x 8 lipeng lipeng 4096 Mayhello
-rwxrwxr-x 1 lipeng lipeng 122 Nov 29 20:16 listfile.sh
-rw-rw-r– 1 lipeng lipeng 177 Aug 1 03:10 main.cpp
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrix
drwxrwxr-x 5 lipeng lipeng 4096 Aprmodbus
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtest
drwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test
$ ./listfile.sh .
./aaa.sh
./listfile.sh
./main.cpp
ls -l
~~~~~~~~~~~~~~~~~~
關(guān)于linux獲取文件名的方法的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營(yíng)銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
網(wǎng)頁(yè)名稱:Linux常見(jiàn)方法:獲取文件名 (linux獲取文件名的方法)
文章位置:http://fisionsoft.com.cn/article/ccchsgo.html


咨詢
建站咨詢
