Encontre todos os arquivos tar.gz e mova-os para um diretório de um nível abaixo

1

Eu tenho arquivos tar.gz acessíveis a partir de

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

E eu quero encontrá-los e movê-los para o diretório ./parent/, portanto, um nível acima. No entanto, existem várias subpastas e tar_file_folders. Portanto, quero chamar meu comando das pastas pai.

Eu tentei esta linha de comando:

cd ./parent

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

No entanto, não sei ao certo como especificar o caminho para um nível acima. Alguma ajuda?

Dois exemplos de caminho onde, neste caso, os arquivos tar devem ser movidos para a pasta ./AU-ASM ou ./AR-Vir/:

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

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

E este é um exemplo de onde o tar.gz está armazenado:

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

A linha de comando precisa ser executada a partir do diretório ./Landsat_Data/

    
por SimonB 21.10.2016 / 14:45

1 resposta

3

Você pode iterar em arquivos tar e movê-los para o diretório pai '..', assim:

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

Tags