Get the filename from a path using :t
modifier. This removes all leading pathname components, leaving just the tail. It works like basename
.
#!/bin/zsh
fullpath="/etc/nginx/nginx.conf"
filename=$fullpath:t
echo $filename
nginx.conf
Or, get the path without the filename using :h
modifier
#!/bin/zsh
fullpath="/etc/nginx/nginx.conf"
filename=$fullpath:h
echo $filename
/etc/nginx
Get the filename without the extension by combining two path modifiers :t
and :r
#!/bin/zsh
fullpath="/etc/nginx/nginx.conf"
filename=$fullpath:t:r
echo $filename
nginx
Get just the extension by combining :t
and :e
path modifiers
#!/bin/zsh
fullpath="/etc/nginx/nginx.conf"
ext=$fullpath:t:e
echo $ext
conf