最近遇到了一兩個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 獲取應用程...