
У меня есть файлы 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