サブディレクトリ名を使用してサブディレクトリのファイル名を変更する方法

サブディレクトリ名を使用してサブディレクトリのファイル名を変更する方法

bashでは非常に基本的かもしれませんので、これは重複しないことを願っています。しかし、私はいつも他の結果で同様の問題を見つけます。私は多くのサブディレクトリを持っており、各サブディレクトリaaa.txtにはサブディレクトリの唯一のtxtファイルであるファイルが含まれています。 txtファイル名は常に同じです(したがって、上記の例では各サブディレクトリで常に「aaa」です)。 txt ファイルにサブディレクトリ名を追加する必要があります。したがって、私が./AAA/aaa.txtandを持っていると仮定すると、./BBB/aaa.txtスクリプトの結果は次 ./AAA/AAA_aaa.txtのようになります。./BBB/BBB_aaa.txt

答え1

dirnameコマンドを使用してディレクトリ名を取得し、basenameコマンドを使用してファイル名をインポートしてから、目的の宛先名を設定できます。 1つのディレクトリレベルしか使用しないと仮定すると、次のように設定できます。

FILEPATH=AAA/aaa.txt

そして名前は次のように変更されました。

mv "$FILEPATH" "$(dirname "$FILEPATH")/$(dirname "$FILEPATH")_$(basename "$FILEPATH")"

関連情報