Linux bash 提取文件名和目录名
在Linux Bash中分别使用basename、dirname、${},提取文件名和目录名。
通过变量方式 #
${}用于字符串的读取,提取和替换功能,可以使用${} 提取字符串
1、提取文件名 #
# file1=/dir1/dir2/file.txt
# echo ${file1##*/}
file.txt
2、提取后缀 #
# echo ${file1##*.}
txt
3、提取不带后缀的文件名 #
# tmp=${file1##*/}
# echo $tmp
file.txt
# echo ${tmp%.*}
file
4、提取目录 #
# echo ${var%/*}
/dir1/dir2
通过命令 #
使用文件目录的专有命令basename和dirname
1、提取文件名 #
# file2=/dir1/dir2/file2.txt
# echo $(basename $file2)
file2.txt
2、提取不带后缀的文件名 #
# echo $(basename $file2 .txt)
file2
3、提取目录 #
# dirname $file2
/dir1/dir2
# echo $(dirname $file2)
/dir1/dir2