Подтвердить что ты не робот

Извлечь путь к каталогу и имя файла

У меня есть переменная, которая имеет путь к каталогу вместе с именем файла. Я хочу извлечь только имя файла из пути каталога Unix и сохранить его в переменной.

fspec="/exp/home1/abc.txt"  
4b9b3361

Ответ 1

Используйте команду basename, чтобы извлечь имя файла из пути:

[/tmp]$ export fspec=/exp/home1/abc.txt 
[/tmp]$ fname=`basename $fspec`
[/tmp]$ echo $fname
abc.txt

Ответ 2

bash, чтобы получить имя файла

fspec="/exp/home1/abc.txt" 
filename="${fspec##*/}"  # get filename
dirname="${fspec%/*}" # get directory/path name

другие способы

AWK

$ echo $fspec | awk -F"/" '{print $NF}'
abc.txt

Сед

$ echo $fspec | sed 's/.*\///'
abc.txt

с использованием IFS

$ IFS="/"
$ set -- $fspec
$ eval echo \${${#@}}
abc.txt

Ответ 3

Вы можете просто сделать:

base=$(basename "$fspec")

Ответ 4

bash:

fspec="/exp/home1/abc.txt"
fname="${fspec##*/}"

Ответ 5

dirname "/usr/home/theconjuring/music/song.mp3" будет давать    /usr/home/theconjuring/music.

Ответ 6

echo $fspec | tr "/" "\n"|tail -1

Ответ 7

Используя bash "here string":

$ fspec="/exp/home1/abc.txt" 
$ tr  "/"  "\n"  <<< $fspec | tail -1
abc.txt
$ filename=$(tr  "/"  "\n"  <<< $fspec | tail -1)
$ echo $filename
abc.txt