簡體   English   中英

從Unix中的完整路徑獲取文件名

[英]Get file name from full path in Unix

我試圖從我的bashrc中的函數的參數的完整路徑獲取文件的名稱。 我不知道任何正則表達式,所以我有點迷茫。 我知道我想獲得最后一次正斜線並在之后使用所有內容,但我不太確定如何去做。 然后我想將它存儲在我的函數中的變量中,稍后我將使用它。

任何幫助表示贊賞!

最快的方法是使用變量替換

f1=/my/big/long/path/to/a/little/bitty/file
f2=./my/big/long/path/to/a/little/bitty/file
f3=my/big/long/path/to/a/little/bitty/file
f4=file

echo ${f1##*/}
echo ${f2##*/}
echo ${f3##*/}
echo ${f4##*/}

# This is how you get value out
filename=${f1##*/}

輸出;

file
file
file
file

您可以使用basename但這將會很慢,因為它將啟動一個新的子進程。

也許使用basename $file_path

可能最簡單的方法是:

PATH=/my/big/long/path/to/a/little/bitty/file
FILENAME=`basename $PATH`
echo $FILENAME

會輸出'文件'

我認為你在找basename

您應該引用basename及其輸出的輸入,以防它們中的任何一個具有有意義的字符(如空格)。

file_basename="$(basename "$filename")"

下面的awk命令可以做到:

259> which cna_update
/vobs/cna/bin/cna_update
262> which cna_update|awk -F"/" '{print $NF}'
cna_update

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM