Suponho que depois de extrair o seu arquivo em uma pasta chamada zip
, você tem a seguinte estrutura de diretórios:
$ tree -F
.
├── myProject/
│ └── res/
│ ├── drawable-hdpi/
│ ├── drawable-ndpi/
│ ├── drawable-xhdpi/
│ └── drawable-xxhdpi/
└── zip/
├── drawable-hdpi/
│ ├── ic_add.png
│ └── ic_del.png
├── drawable-ndpi/
│ ├── ic_add.png
│ └── ic_del.png
├── drawable-xhdpi/
│ ├── ic_add.png
│ └── ic_del.png
└── drawable-xxhdpi/
├── ic_add.png
└── ic_del.png
Em seguida, você pode simplesmente mover todos os arquivos *.png
de todos os diretórios drawable-*/
dentro de zip/
para seus respectivos diretórios drawable-*/
dentro de myProject/res/
usando o seguinte comando:
for folder in zip/drawable-*/ ; do mv "$folder"/*.png "myProject/res/$(basename $folder)" ; done
Ele percorrerá todas as pastas zip/drawable-*/
, computará o diretório de destino apropriado anexando o último componente de caminho da pasta de origem ao caminho myProject/res/
e moverá todos os arquivos *.png
da pasta de origem para a pasta de destino .
Você pode alterar os globos e os caminhos da shell para se adequar ao seu ambiente real.
Você pode substituir mv
por cp
para copiar os arquivos em vez de movê-los.
Você pode escrever mv -i
para ser perguntado antes de qualquer arquivo existente ser sobrescrito ou mv -n
pular arquivos que já existem e não sobrescrever nada. Os mesmos switches existem para cp
.
No entanto, observe que nem mv
nem cp
criam diretórios ausentes, portanto, verifique se os caminhos de destino de cada arquivo já existem.