dirname-and-basename

路径截取 #

dirname #

# dirname - strip last component from file name

dirname [OPTION] NAME...
  -z, --zero	end each output line with NUL, not newline

用例:

sh
dirname /usr/bin/
# /usr

dirname dir1/str dir2/str
# dir1
# dir2

dirname stdio.h
# .

cd "$(dirname "$0")"  # cd to the directory of the script

basename #

# basename - strip directory and suffix from filenames

basename NAME [SUFFIX]
basename OPTION... NAME...
  -a, --multiple		support multiple arguments and treat each as a NAME
  -s, --suffix=SUFFIX	remove a trailing SUFFIX; implies -a
  -z, --zero			end each output line with NUL, not newline

用例:

sh
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
# str2
2020年2月24日