参数扩展和文件名

你可以使用 Bash 参数扩展来模拟常见的文件名处理操作,如 basenamedirname

我们将使用它作为示例路径:

FILENAME="/tmp/example/myfile.txt"

要模拟 dirname 并返回文件路径的目录名:

echo "${FILENAME%/*}"
#Out: /tmp/example

要模拟 basename $FILENAME 并返回文件路径的文件名:

echo "${FILENAME##*/}"
#Out: myfile.txt

要模拟 basename $FILENAME .txt 并返回没有 .txt. 扩展名的文件名:

BASENAME="${FILENAME##*/}"
echo "${BASENAME%%.txt}"
#Out: myfile