我們都知道,在命令行可以使用 pwd 命令來(lái)獲取當(dāng)前目錄的完整路徑(絕對(duì)路徑):
pwd
那么,如何獲取文件的絕對(duì)路徑呢?有下列幾種方法,可以打印文件的完整路徑:
- readlink
- realpath
- find
- ls 和 pwd 組合使用
$ readlink -f sample.txt
/home/gliu/sample.txt
$ realpath -s sample.txt
/home/gliu/sample.txt
$ find $(pwd) -name sample.txt
/home/gliu/sample.txt
下面我們來(lái)詳細(xì)介紹一下這些命令。不過(guò)在此之前,我建議先了解一下絕對(duì)路徑和相對(duì)路徑概念相關(guān)的基礎(chǔ)知識(shí)。
使用 readlink 獲取文件路徑
readlink 的最初用途是解析符號(hào)鏈接,不過(guò)我們可以用它來(lái)顯示文件的完整路徑,如下為其語(yǔ)法結(jié)構(gòu):
readlink -f filename
如下為一個(gè)例子:
$ readlink -f sample.txt
/home/gliu/sample.txt
使用 realpath 獲取文件的完整路徑
realpath 原用于解析絕對(duì)文件名,在這里我們也可以用它來(lái)顯示文件的完整路徑:
realpath filename
下面是一個(gè)例子:
$ realpath sample.txt
/home/gliu/sample.txt
如果使用符號(hào)鏈接,它將顯示原始文件的實(shí)際路徑。你可以強(qiáng)制它不跟隨符號(hào)鏈接(即顯示當(dāng)前文件的路徑):
realpath -s filename
下面是一個(gè)示例,默認(rèn)情況下它顯示了源文件的完整路徑,然后我強(qiáng)制它顯示符號(hào)鏈接,而不是原始文件:
$ realpath linking-park
/home/gliu/Documents/ubuntu-commands.md
$ realpath -s linking-park
/home/gliu/linking-park
使用 find 命令獲取文件絕對(duì)路徑
下面是使用 find 命令獲取文件路徑的方法。
在 find 命令中,如果給定的路徑是一個(gè)點(diǎn) . ,那么它將顯示相對(duì)路徑;如果給定的是一個(gè)絕對(duì)路徑,那么就可以獲取搜索文件的絕對(duì)路徑。
使用命令占位符與 find 命令一起使用,如下:
find $(pwd) -name filename
我們可以使用這種方式來(lái)獲取單一文件的絕對(duì)路徑:
$ find $(pwd) -name sample.txt
/home/gliu/sample.txt
或者,可以使用匹配模式(比如星號(hào) *)來(lái)獲取一組文件的路徑:
$ find $(pwd) -name "*.pdf"
/home/gliu/Documents/eBooks/think-like-a-programmer.pdf
/home/gliu/Documents/eBooks/linux-guide.pdf
/home/gliu/Documents/eBooks/absolute-open-bsd.pdf
/home/gliu/Documents/eBooks/theory-of-fun-for-game-design.pdf
/home/gliu/Documents/eBooks/Ubuntu 1804 english.pdf
/home/gliu/Documents/eBooks/computer_science_distilled_v1.4.pdf
/home/gliu/Documents/eBooks/the-art-of-debugging-with-gdb-and-eclipse.pdf
使用 ls 命令打印完整路徑
使用 ls 命令來(lái)獲取文件的絕對(duì)路徑,稍微優(yōu)點(diǎn)復(fù)雜。
我們可以在 ls 命令中使用環(huán)境變量PWD來(lái)顯示文件和目錄的絕對(duì)路徑,如下:
ls -ld $PWD/*
使用上述命令,會(huì)得到如下輸出:
$ ls -ld $PWD/*
-r--rw-r-- 1 gliu gliu 0 Jul 27 16:57 /home/gliu/test/file2.txt
drwxrwxr-x 2 gliu gliu 4096 Aug 22 16:58 /home/gliu/test/new
要使用上述命令打印某個(gè)文件的完整路徑,可以如下使用:
ls -l $PWD/filename
這雖然不是最好的解決方案,但是很有效,看下面的例子:
$ ls -l $PWD/sample.txt
-rw-r--r-- 1 gliu gliu 12813 Sep 7 11:50 /home/gliu/sample.txt
以上我們介紹了在 Linux 中獲取文件完整路徑的4種方法,其中 find 和 ls 命令的方式最常見(jiàn),而 realpath 和 readlink 這兩種方法對(duì)許多新用戶來(lái)說(shuō)可能還清楚,不過(guò)任何事情總有第一次,能學(xué)習(xí)到新的東西總是好的。
審核編輯:劉清
-
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
605瀏覽量
28620
發(fā)布評(píng)論請(qǐng)先 登錄
查看Linux系統(tǒng)內(nèi)存使用情況的幾種方法

linux下查看網(wǎng)卡流量的六種方法
香橙派PC Plus電腦開(kāi)發(fā)板獲取CPU溫度的三種方法
在Android系統(tǒng)中的linux下控制GPIO的方法
如何獲取LED.h的完整路徑?
一種獲取關(guān)聯(lián)程序啟動(dòng)路徑的方法與實(shí)現(xiàn)
如何使用Linux視頻驅(qū)動(dòng)接口V4L2進(jìn)行視頻采集編程?
Java中如何獲取文件的路徑
Python、PyQt如何從獲取的文件路徑中提取文件夾路徑
C語(yǔ)言獲取文件長(zhǎng)度的兩種方法

評(píng)論