Prety F2E

We tell browsers how to do better

0%

Bash 提取文件名和目录名

在 Bash 中分别使用 basename、dirname、${},提取文件名和目录名。

通过变量方式

${} 用于字符串的读取、提取和替换功能,可以使用 ${} 提取字符串

提取文件名

1
2
3
file1=/dir1/dir2/file.txt
echo ${file1##*/}
# file.txt

提取后缀

1
2
echo ${file1##*.}
# txt

提取不带后缀的文件名

1
2
3
4
5
tmp=${file1##*/}
echo $tmp
# file.txt
echo ${tmp%.*}
# file

提取目录

1
2
echo ${var%/*}
# /dir1/dir2

通过命令

使用文件目录的专有命令 basename 和 dirname

提取文件名

1
2
3
file2=/dir1/dir2/file2.txt
echo $(basename $file2)
# file2.txt

提取不带后缀的文件名

1
2
echo $(basename $file2 .txt)
# file2

提取目录

1
2
3
4
dirname $file2
# /dir1/dir2
echo $(dirname $file2)
# /dir1/dir2