encontre arquivos específicos e copie-os para um diretório no linux

0
abc-1.0.zip
kncb-1.0.zip
jenk-1.1.zip

Eu quero encontrar todos os arquivos acima dinamicamente e copiá-los para um diretório, exceto jenk-1.1.zip. Eu tentei o comando abaixo, mas ele também copia o arquivo (jenk * .zip), precisa de um comando que copie todos os arquivos acima, exceto jenk-1.1.zip para um diretório mencionado (test_dir);

find . \( -name *abc*.zip-o -name *knc*.zip ! -name "*jenk*.zip"\)  ! -path '*/test_dir/*.jar' -exec cp -ar {} ./test_dir \;
    
por itgeek 15.10.2018 / 21:53

2 respostas

0

 -iname *.zip 

está procurando por todos os arquivos zip

! -iname "jen*.zip"

está ignorando todos os arquivos jenk *

Se você está procurando apenas arquivos zip, não há necessidade de excluir arquivos jar. Se você procurar por arquivos ( find -type f ), não há necessidade da opção cp -r (recursiva))

find . -type f \( -iname "*.zip" ! -iname "jen*.zip" \) -exec cp -av {} ~/test \;
    
por 15.10.2018 / 22:16
0
cp $(find . -maxdepth 1 -name abc-1.0.zip -o -name kncb-1.0.zip) test_dir

Execute isso no diretório onde os arquivos residem. Se você quiser descer em subdiretórios, remova maxdepth 1 .

    
por 15.10.2018 / 22:19