Preciso copiar só os arquivos de 6 diretórios, para um único diretório. [RESOLVIDO]

1. Preciso copiar só os arquivos de 6 diretórios, para um único diretório. [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa Sabayon)

Enviado em 21/06/2018 - 18:34h

Boa noite a todos. Em meus testes par um novo Artigo, preciso copiar só os arquivos, sem a estrutura de diretórios, para um único dir.....

explico.... no diretório origem, tenho 2 diretórios: teste e teste2 (este, vazio)

 dir origem $ ls
teste teste2


No subdiretório teste, tenho 6 sudiretórios (vou chamar ESTRUTDIR)


$ ls teste
dev-python x11-apps x11-libs x11-misc x11-plugins x11-wm


Cada um desses subdiretórios tem arquivos .tbz2
assim:


$ ls teste/*

teste/dev-python:
dev-python:compizconfig-python-0.8.4-r5.a887285509aff755cfd714c707c5b61639c59887~9999.tbz2

teste/x11-apps:
x11-apps:fusion-icon-0.2.4.9b36d264ef96c3b41086f261944a2188b84801b3~9999.tbz2

teste/x11-libs:
x11-libs:compiz-bcop-0.8.8.f7164d2d193f212f926583fc22511e6040007633~9999.tbz2
x11-libs:compizconfig-backend-gconf-0.8.8.99dace3b4f69a6b241a7f6882691070a34603447~9999.tbz2
x11-libs:libcompizconfig-0.8.8-r1.a3ff56929ec1580a03f56732d6e89353b688cc6b~9999.tbz2

teste/x11-misc:
x11-misc:ccsm-0.8.4-r5.ee3aaf1f94ebb03871c021b1b898350c4f8ad170~9999.tbz2
x11-misc:simple-ccsm-0.8.4-r2.06413c172a8f6a98983202cf01b8a287d0344ca7~9999.tbz2

teste/x11-plugins:
x11-plugins:compiz-plugins-extra-0.8.8.0adcb6c6187cfe70ac5dce307c7224a50f98a69e~9999.tbz2
x11-plugins:compiz-plugins-main-0.8.8.15954824be1cda9bb9d10c6f42d8c93b73fe81cb~9999.tbz2
x11-plugins:compiz-plugins-unsupported-0.8.8.6040ddbc94ebbae703bab4292d7eb6f21dd47786~9999.tbz2

teste/x11-wm:
x11-wm:compiz-0.8.8-r3.780ef501ec36aacb7d40c316d01accbfed7481e3~9999.tbz2
x11-wm:compiz-fusion-0.8.8-r1.74183ac2c44d3259df7418db467d30d8c3285aec~9999.tbz2


Eu preciso copiar ou mover só os arquivos que estão no diretório "teste" para o diretório teste2 vazio.... Estou tentando assim:


$ cp teste/* teste2
cp: -r não especificado; omitindo o diretório 'teste/dev-python'
cp: -r não especificado; omitindo o diretório 'teste/x11-apps'
cp: -r não especificado; omitindo o diretório 'teste/x11-libs'
cp: -r não especificado; omitindo o diretório 'teste/x11-misc'
cp: -r não especificado; omitindo o diretório 'teste/x11-plugins'
cp: -r não especificado; omitindo o diretório 'teste/x11-wm'


como veem, não está recursivo, por isso não copia nada, omitem mas omite tudo e deixa teste2 vazio.

porém se uso opções recursivas:


$ cp -r teste/* teste2
$ cp -R teste/* teste2


está sendo copiado tudo..., a ESTRUTDIR também,ou seja resumindo, eu preciso copiar só os arquivos, dos seis subdiretórios, mas sem copiar a estrutura de subdiretórios.

entrando em cada subdir e copiando um por um, eu consigo, mas é uma solução "meia boca", não acham?

Quem puder ajudar, eu citarei no Artigo... Obrigado!



  


2. MELHOR RESPOSTA

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 21/06/2018 - 18:43h

.
.
.
.
v aí se é isso q vc precisa
find /teste2 -name *.tbz2 -exec cp {} /teste \; 
ou
find /teste2 -iname *.tbz2 -exec cp '{}' /teste \; 


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------


3. Re: Preciso copiar só os arquivos de 6 diretórios, para um único diretório. [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa Sabayon)

Enviado em 21/06/2018 - 19:21h

Mauricio, tu é bom de terminal....

Vou citar vc no Artigo, que estou fazendo, aqui no VOL. É sobre como instalar Compiz-Fusion nos Sabayons novos (que não tem mais compiz-fusion, pq ele tá deprecado no Gentoo)

apenas modificado um pouco seu comando, funcionou: os DIRS foram achados apenas sem a / e no meu texto, o DIR que tem os subdirs é TESTE e o dir alvo, para onde copiar é TESTE2, portanto ficou assim com o seu comando modificado, que funcionou:

$ find teste -name *.tbz2 -exec cp {} teste2 \;  


veja os arquivos copiados, OK:


$ ls -a teste2
dev-python:compizconfig-python-0.8.4-r5.a887285509aff755cfd714c707c5b61639c59887~9999.tbz2
x11-apps:fusion-icon-0.2.4.9b36d264ef96c3b41086f261944a2188b84801b3~9999.tbz2
x11-libs:compiz-bcop-0.8.8.f7164d2d193f212f926583fc22511e6040007633~9999.tbz2
x11-libs:compizconfig-backend-gconf-0.8.8.99dace3b4f69a6b241a7f6882691070a34603447~9999.tbz2
x11-libs:libcompizconfig-0.8.8-r1.a3ff56929ec1580a03f56732d6e89353b688cc6b~9999.tbz2
x11-misc:ccsm-0.8.4-r5.ee3aaf1f94ebb03871c021b1b898350c4f8ad170~9999.tbz2
x11-misc:simple-ccsm-0.8.4-r2.06413c172a8f6a98983202cf01b8a287d0344ca7~9999.tbz2
x11-plugins:compiz-plugins-extra-0.8.8.0adcb6c6187cfe70ac5dce307c7224a50f98a69e~9999.tbz2
x11-plugins:compiz-plugins-main-0.8.8.15954824be1cda9bb9d10c6f42d8c93b73fe81cb~9999.tbz2
x11-plugins:compiz-plugins-unsupported-0.8.8.6040ddbc94ebbae703bab4292d7eb6f21dd47786~9999.tbz2
x11-wm:compiz-0.8.8-r3.780ef501ec36aacb7d40c316d01accbfed7481e3~9999.tbz2
x11-wm:compiz-fusion-0.8.8-r1.74183ac2c44d3259df7418db467d30d8c3285aec~9999.tbz


Deu certinho! Valeu!

COMPLEMENTO ACHADO
Depois, pesquisando, achei mais um jeito +- parecido com o seu, mas outros comandos.

Veja em:

https://unix.stackexchange.com/questions/101916/copy-only-regular-files-from-one-directory-to-anothe...

Usar isto... dir1 é a fonte dos arquivos e dir2, o diretório alvo. Se eu removo a opção "maxdepth 1", só os arquivos são copiados:

find dir1 -maxdepth 1 -type f | xargs -I {} cp {} dir2 


¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


4. Re: Preciso copiar só os arquivos de 6 diretórios, para um único diretório. [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 21/06/2018 - 19:25h

albfneto escreveu:
find dir1 -maxdepth 1 -type f | xargs -I {} cp {} dir2 

.


Esse eu não conhecia ... é bem simples, mais um para a coleção .

Abçs

------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------



5. Re: Preciso copiar só os arquivos de 6 diretórios, para um único diretório. [RESOLVIDO]

Alberto Federman Neto.
albfneto

(usa Sabayon)

Enviado em 21/06/2018 - 21:25h

eu sempre salvo esses: comandos combinados e pequenos scripts, comandos com expressões regulares etc.... pq são complicados (para quem como eu não é da área de TI) e são muito úteis.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.