我希望这不是重复的,因为它在 bash 中可能是非常基本的,但我总是发现类似的问题,但结果不同。我有很多子目录,每个子目录都包含一个“ aaa.txt
”文件,这是子目录中唯一的txt文件。 txt 文件名始终相同(因此在上面的示例中,每个子目录中始终为“aaa”)。我需要将子目录名称添加到 txt 文件中。因此,假设我有./AAA/aaa.txt
和./BBB/aaa.txt
,脚本的结果应该是:
./AAA/AAA_aaa.txt
和./BBB/BBB_aaa.txt
答案1
您可以使用 dirname 命令获取目录名,使用 basename 命令获取文件名,然后构造您想要的目标名称。假设您仅使用一个目录级别,您可以设置,例如
FILEPATH=AAA/aaa.txt
并重命名为
mv "$FILEPATH" "$(dirname "$FILEPATH")/$(dirname "$FILEPATH")_$(basename "$FILEPATH")"