すべてのtar.gzファイルを検索し、1つ下のディレクトリに移動します

すべてのtar.gzファイルを検索し、1つ下のディレクトリに移動します

tar.gzファイルにアクセスできるようになりました

./parent/subfolder/tar_file_folder/*tar.gz

そして、それらを見つけて ./parent/ ディレクトリに移動して、1 レベル上に移動したいと考えています。ただし、サブフォルダーと tar_file_folders がいくつかあります。したがって、親フォルダーからコマンドを呼び出したいと思います。

次のコマンド ラインを試しました:

cd ./parent

find -name '*.tar.gz' -exec mv {} /path/to/single/target/directory \;

しかし、1 レベル上のパスを指定する方法がよくわかりません。何か助けはありますか?

この場合、tar ファイルを ./AU-ASM フォルダーまたは ./AR-Vir/ フォルダーに移動する必要があるパスの例が 2 つあります。

./AU-ASM/[email protected]/LT51030752011211-SC20161014133947.tar.gz

./AR-Vir/[email protected]/LT51030751995263-SC20161014133510.tar.gz’

これは tar.gz が保存される場所の例です。

./Landsat_Data/AR-Vir/[email protected]/*tar.gz

コマンドラインは./Landsat_Data/ディレクトリから実行する必要があります。

答え1

次のように、tar ファイルを反復処理して親ディレクトリ '..' に移動することができます。

for tar in $(find path -name '*.tar.gz'); do mv $tar $(dirname $tar)/..; done

関連情報