Найдите все файлы tar.gz и переместите их в каталог на один уровень ниже.

Найдите все файлы tar.gz и переместите их в каталог на один уровень ниже.

У меня есть файлы tar.gz, доступные из

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

И я хочу найти их и переместить в каталог ./parent/, то есть на один уровень выше. Однако есть несколько подпапок и tar_file_folders. Поэтому я хочу вызвать свою команду из родительских папок.

Я попробовал эту командную строку:

cd ./parent

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

Однако я не совсем уверен, как указать путь на один уровень выше. Есть ли помощь?

Два примера пути, где в этом случае файлы 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

Связанный контент