copiando arquivos de vários diretórios para outro diretório múltiplo

0

vamos supor, eu tenho duas pastas; folder_1 e folder_2. Existem outras 24 pastas em cada pasta (folder_1 e folder_2). Cada subpasta de folder_1 contém 1 arquivo de texto cujo nome é geomagnetic_script_xxxx. xxxx é variável numérica, "geomagnetic_script" é constante para todas as pastas. As subpastas da pasta_2 estão vazias. Eu preciso copiar cada arquivo de texto (geomagnetic_script_xxxx) para a subpasta de folder_2. Desta forma, cada subpasta da pasta_2 contém 1 arquivo de texto que é idêntico a subpastas da pasta_1.

Qual script me permite fazer isso?

    
por deepblue_86 30.03.2016 / 15:11

1 resposta

2

Execute este comando na pasta que contém folder_1 e folder2 :

find folder_1 -name 'geomagnetic_script_????' -type f -print0 | while read -d '' -r file; do echo cp "$file" folder_2/"${file#*/}"; done

Apenas por segurança, eu inibai o comando cp real ao prefixar echo para ele. Veja se está fazendo o que você quer e, em seguida, remova o echo e execute-o novamente.

Exemplo de saída na minha máquina:

$ tree
.
├── folder_1
│   ├── subfolder_1
│   │   └── file_25406
│   ├── subfolder_10
│   │   └── file_1439
│   ├── subfolder_11
│   │   └── file_21028
│   ├── subfolder_12
│   │   └── file_13026
│   ├── subfolder_13
│   │   └── file_3717
│   ├── subfolder_14
│   │   └── file_9825
│   ├── subfolder_15
│   │   └── file_14953
│   ├── subfolder_16
│   │   └── file_12760
│   ├── subfolder_17
│   │   └── file_8490
│   ├── subfolder_18
│   │   └── file_14577
│   ├── subfolder_19
│   │   └── file_11999
│   ├── subfolder_2
│   │   └── file_24557
│   ├── subfolder_20
│   │   └── file_27957
│   ├── subfolder_21
│   │   └── file_158
│   ├── subfolder_22
│   │   └── file_1361
│   ├── subfolder_23
│   │   └── file_27370
│   ├── subfolder_24
│   │   └── file_4919
│   ├── subfolder_3
│   │   └── file_30149
│   ├── subfolder_4
│   │   └── file_5352
│   ├── subfolder_5
│   │   └── file_27907
│   ├── subfolder_6
│   │   └── file_14716
│   ├── subfolder_7
│   │   └── file_1989
│   ├── subfolder_8
│   │   └── file_7850
│   └── subfolder_9
│       └── file_31831
├── folder_2
│   ├── subfolder_1
│   ├── subfolder_10
│   ├── subfolder_11
│   ├── subfolder_12
│   ├── subfolder_13
│   ├── subfolder_14
│   ├── subfolder_15
│   ├── subfolder_16
│   ├── subfolder_17
│   ├── subfolder_18
│   ├── subfolder_19
│   ├── subfolder_2
│   ├── subfolder_20
│   ├── subfolder_21
│   ├── subfolder_22
│   ├── subfolder_23
│   ├── subfolder_24
│   ├── subfolder_3
│   ├── subfolder_4
│   ├── subfolder_5
│   ├── subfolder_6
│   ├── subfolder_7
│   ├── subfolder_8
│   └── subfolder_9
└── script.sh

50 directories, 25 files
$ find folder_1 -type f -name 'file_*' -print0 | while read -d '' -r file; do cp "$file" folder_2/"${file#*/}"; done
$ tree
.
├── folder_1
│   ├── subfolder_1
│   │   └── file_25406
│   ├── subfolder_10
│   │   └── file_1439
│   ├── subfolder_11
│   │   └── file_21028
│   ├── subfolder_12
│   │   └── file_13026
│   ├── subfolder_13
│   │   └── file_3717
│   ├── subfolder_14
│   │   └── file_9825
│   ├── subfolder_15
│   │   └── file_14953
│   ├── subfolder_16
│   │   └── file_12760
│   ├── subfolder_17
│   │   └── file_8490
│   ├── subfolder_18
│   │   └── file_14577
│   ├── subfolder_19
│   │   └── file_11999
│   ├── subfolder_2
│   │   └── file_24557
│   ├── subfolder_20
│   │   └── file_27957
│   ├── subfolder_21
│   │   └── file_158
│   ├── subfolder_22
│   │   └── file_1361
│   ├── subfolder_23
│   │   └── file_27370
│   ├── subfolder_24
│   │   └── file_4919
│   ├── subfolder_3
│   │   └── file_30149
│   ├── subfolder_4
│   │   └── file_5352
│   ├── subfolder_5
│   │   └── file_27907
│   ├── subfolder_6
│   │   └── file_14716
│   ├── subfolder_7
│   │   └── file_1989
│   ├── subfolder_8
│   │   └── file_7850
│   └── subfolder_9
│       └── file_31831
├── folder_2
│   ├── subfolder_1
│   │   └── file_25406
│   ├── subfolder_10
│   │   └── file_1439
│   ├── subfolder_11
│   │   └── file_21028
│   ├── subfolder_12
│   │   └── file_13026
│   ├── subfolder_13
│   │   └── file_3717
│   ├── subfolder_14
│   │   └── file_9825
│   ├── subfolder_15
│   │   └── file_14953
│   ├── subfolder_16
│   │   └── file_12760
│   ├── subfolder_17
│   │   └── file_8490
│   ├── subfolder_18
│   │   └── file_14577
│   ├── subfolder_19
│   │   └── file_11999
│   ├── subfolder_2
│   │   └── file_24557
│   ├── subfolder_20
│   │   └── file_27957
│   ├── subfolder_21
│   │   └── file_158
│   ├── subfolder_22
│   │   └── file_1361
│   ├── subfolder_23
│   │   └── file_27370
│   ├── subfolder_24
│   │   └── file_4919
│   ├── subfolder_3
│   │   └── file_30149
│   ├── subfolder_4
│   │   └── file_5352
│   ├── subfolder_5
│   │   └── file_27907
│   ├── subfolder_6
│   │   └── file_14716
│   ├── subfolder_7
│   │   └── file_1989
│   ├── subfolder_8
│   │   └── file_7850
│   └── subfolder_9
│       └── file_31831
└── script.sh

50 directories, 49 files
$ 
    
por kos 30.03.2016 / 15:59