在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