Linux檔案路徑獲取相關命令

2021-08-14 13:17:58 字數 3636 閱讀 1195

最近遇到了一兩個linux檔案路徑獲取的命令, 感覺會比較有用. 簡單記錄下, 應該還不全面.

以後遇到了更多的會再繼續新增. 都是linux自帶的工具命令.

1: readlink

主要用來找出符號鏈結所指向的位置. 列印出符號鏈結或者是權威檔名.

usage: readlink [option]... file...

print value of a symbolic link or canonical file

name

-f, --canonicalize canonicalize by following every symlink in

every component of

thegiven

name recursively;

all but

thelast component must exist

遞迴跟隨給出檔名的所有符號鏈結以標準化,遞迴跟隨給出檔名的所有符號鏈結以標準化,

-e, --canonicalize-existing canonicalize by following every symlink in

every component of

thegiven

name recursively,

all components must exist

遞迴跟隨給出檔名的所有符號鏈結以標準化,遞迴跟隨給出檔名的所有符號鏈結以標準化,

-m, --canonicalize-missing canonicalize by following every symlink in

every component of

thegiven

name recursively,

without requirements on

components existence

遞迴跟隨給出檔名的所有符號鏈結以標準化,遞迴跟隨給出檔名的所有符號鏈結以標準化,

-n, --no-newline do not output the trailing delimiter

遞迴跟隨給出檔名的所有符號鏈結以標準化,

-q, --quiet,

-s, --silent suppress most error messages 縮減大多數的錯誤訊息

-v, --verbose report error messages 縮減大多數的錯誤訊息

-z, --zero separate output with nul rather than newline

--help display this help and exit 顯示此幫助資訊並退出

--version output version information and exit 顯示此幫助資訊並退出

常用的是readlink -f

可以遞迴跟隨給出檔名的所有符號鏈結以標準化,除最後乙個外所有元件必須存在。就是一直跟隨符號鏈結,直到直到非符號鏈結的檔案位置,限制是最後必須存在乙個非符號鏈結的檔案。

例項:

$ readlink /usr/bin/awk

/etc/alternatives/awk

$ ll /etc/alternatives/awk

lrwxrwxrwx 1 root root 13

sep12

2013 /etc/alternatives/awk -> /usr/bin/mawk*

$ readlink -f /usr/bin/awk

/usr/bin/mawk

2: dirname

取乙個檔案儲存路徑

$ dirname --help 

usage: dirname [option] name...

output each name with its last non-slash component and trailing slashes

removed; if name contains no /'s, output '.' (meaning the current directory).

-z, --zero separate output with nul rather than newline

--help display this help and

exit

--version output version information and

exit

例項:

dirname /usr/bin/

->

"/usr"

dirname dir1/str dir2/str->

"dir1" followed by

"dir2"

dirname stdio.h->

"."

3: basename

取乙個檔名(去掉字尾名),可以用basename。這個命令使用起來貌似有些死板。你要完整地寫出 字尾名(想要剔除的部分)。

$ basename --help 

usage: basename name [suffix]

or: basename option... name...

print name with

any leading directory components removed.

if specified, also remove a trailing suffix.

mandatory arguments to

long options are mandatory for

short options too.

-a, --multiple support multiple arguments and treat each as a name

-s, --suffix=suffix remove a trailing suffix

-z, --zero separate output with nul rather than newline

--help display this help and exit

--version output version information and exit

例項:

basename /usr/bin/sort          -> "sort" 

basename include/stdio.h .h -> "stdio"

basename -s .h include/stdio.h -> "stdio"

basename -a

any/str1 any/str2 -> "str1" followed by

"str2"

目測相關的命令還有realpath/readlinat/symlink/symlinkat等,不過我目前沒有用到過,暫時不做介紹了.

以後了解點再補上.

Linux檔案相關命令

linux檔案中查詢字串並將結果輸出到檔案 清除空檔案內容 truncate s 0 filename linux下批量刪除空檔案 大小等於0的檔案 find name type f size 0c xargs n 1 rm f grep c 5 foo file 顯示file檔案裡匹配foo字串那...

linux 獲取檔案路徑中的目錄路徑和檔名

經常碰到這樣的需求,需要知道執行程式的路徑和程式名,該怎麼辦呢?linux中有兩個命令 dirname 獲得檔案所在目錄名稱 basename 獲得檔案路徑中的檔名 下面我們來看看方法哈 getdir.sh path dirname 0 echo programe s file path path ...

檔案獲取路徑

獲取模組的完整路徑,包含檔名 system.diagnostics.process.getcurrentprocess mainmodule.filename 獲取和設定當前目錄 該程序從中啟動的目錄 的完全限定目錄。system.environment.currentdirectory 獲取應用程...