すべてのtar.gzファイルを見つけて、次のディレクトリに移動します。

すべてのtar.gzファイルを見つけて、次のディレクトリに移動します。

以下から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つのレベルの上にパスを指定する方法がわかりません。助けが必要ですか?

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

./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

関連情報