在bash shell中如何提取给定路径中的文件名
时间:2019-11-20 08:53:00 来源:igfitidea点击:
Bash shell脚本,如何提取给定路径中的文件名和扩展名?
bash shell下如何从路径获取文件名?
Bash从给定路径获取文件名
basename命令将删除目录和文件名的后缀名。
语法非常简单:
basename /path/to/file basename /path/to/file suffix
示例
basename /bin/ls
还可以使用-a选项传递多个参数,如下所示:
basename -a /bin/ls /backup/theitroad/data.tar.gz
将输出结果存储在shell变量中:
out="$(basename /backup/theitroad-file.tar.gz)" echo "Filename is $out"
如何删除文件名中的后缀名(扩展名)
要从backups.tar.gz文件中删除.gz,可以执行下面命令:
basename /backups/theitroad/backups.tar.gz .gz
或者
basename -s .gz /backups/theitroad/backups.tar.gz my_name="$(basename -s .gz /backups/theitroad/backups.tar.gz)" echo "Filename: $my_name"
在bash shell脚本中如何获取文件名及其后缀
创建一个shell脚本test.sh:
#!/bin/bash
input="/home/Hyman/theitroad/config.ini"
# 获取文件名 config.ini
file_name="${input##*/}"
# 获取文件后缀名
file_extension="${file_name##*.}"
# 获取文件名 config
file="${file_name%.*}"
# 打印获取到的文件信息
echo "文件: $input"
echo "文件名: $file_name"
echo "后缀名: $file_extension"
echo "文件名(不带后缀): $file"
在Linux中执行shell脚本,运行:
chmod +x test.sh ./test.sh bash test.sh

