Como posso copiar as pastas de imagens de todos os diretórios Case-r20-c020-t001-da1
, ou seja, ,... Case-r20-c020-t001-dan
em um novo caminho, mantendo os nomes dos diretórios originais, por exemplo Case-r20-c020-t001-da1
, ,... Case-r20-c020-t001-dan
. Digamos que eu tenha uma estrutura de diretórios conforme abaixo;
Case-r20-c020-t001-da1/
|____image/ <<<< This is a folder that has some pictures
|______ jpg
|______ png
|____infromation/ <<<< This is a folder.
|_______ text1.txt
|_______ text2.txt
|____ file1.txt
Case-r20-c020-t001-da2/
|____image/
|______ jpg
|______ png
|____infromation/
|_______ text1.txt
|_______ text2.txt
|____ file1.txt
: .
Case-r20-c020-t001-dan/ <<< n goes from 3,...20.
|____image/
|______ jpg
|______ png
|____infromation/
|_______ text1.txt
|_______ text2.txt
|____ file1.txt
Minha tentativa inicial é a seguinte;
for f in Case-r20-c020-t001-da*;do (cp -r images /path/folder*);done
Então, quero copiar o texto acima para um novo diretório e a saída deve ser a seguinte;
Case-r20-c020-t001-da1_images/
|____image/
|______ jpg
|______ png
Case-r20-c020-t001-da2_images/
|____image/
|______ jpg
|______ png
: .
Case-r20-c020-t001-dan_images/
|____image/
|______ jpg
|______ png
Eu prefiro ser um comando.
Qualquer ajuda seria apreciada.
Obrigado,
Responder1
Isso ficaria mais claro como um script pequeno, mas aqui está escrito como um comando. Ele está dividido em duas linhas para maior clareza: remova a barra invertida se desejar unir as linhas.
for old in /old/path/Case-r20-c020-t001-da*; \
do new="/new/path/$(basename $old)_images"; mkdir -p "$new" && cp -r "$old/image" "$new/"; done