从bash中的文件系统路径获取父目录路径

时间:2019-10-29 16:10:22

标签: bash

我需要bash脚本的帮助:

假设我有一个bash.sh文件,例如:

cat 
$1Viral_sequences_loci/Fasta_viral_loci_seq_* > $1Viral_sequences_loci/All_fasta_viral_loci.fna

然后我运行bash bash.sh /path1/path2/path3/

所以我将$1替换为/path1/path2/path3/

cat 
/path1/path2/path3/Viral_sequences_loci/Fasta_viral_loci_seq_* > /path1/path2/path3/Viral_sequences_loci/All_fasta_viral_loci.fna

但是,如果我只想减少路径中的一个顺序,例如:

cat 
/path1/path2/path3/Viral_sequences_loci/Fasta_viral_loci_seq_* > /path1/path2/Viral_sequences_loci/All_fasta_viral_loci.fna

第二个$1不是/path1/path2/path3/而是/path1/path2/

1 个答案:

答案 0 :(得分:3)

"${1%/*/}/"删除由bash的*匹配的最短后缀模式,包括前一个/之后的结尾/,然后重新添加/ 。借助shopt -s extglob?(/)可以用于尾随/使其为可选。