Script de cópia (destino - origem) otimizado
Publicado por Alexandre Gonçalves Monteiro da Silva (última atualização em 07/09/2011)
[ Hits: 7.331 ]
Homepage: https://www.vivaolinux.com.br/~alexandre_gms
Pessoal, este script foi feito para economizar economizar a digitação do usuário e facilitar a busca de pastas.
Caso você queira copiar uma pasta para um determinado local, porém você não lembra exatamente o caminho, ou você precisa copiar determinado diretório e o caminho são trocentas pastas acima ou abaixo do seu diretório corrente.
O script funciona basicamente assim:
1) Digite a pasta que você quer copiar (caminho completo)
2) Digite apenas o nome da pasta destino (SOMENTE O NOME E NÃO O CAMINHO COMPLETO)
3) Caso a pasta que você digitou exista em mais de um local do Sistema, ele vai te listar todas, por exemplo, você digitou a pasta destino "bkp_old", ele listará todos os caminhos em que a pasta foi encontrada:
1 /opt/apache-tomcat/6.0.21/bkp_old
2 /etc/rc.d/bkp_old
3 /etc/appnet/conf/bkp_old
4 /var/log/rdm/bkp_old
Em seguida você digitará o numero do caminho desejado.
Após a cópia será exibida uma mensagem na tela de sucesso ou erro.
Outra opção do script é que o usuário é obrigado a digitar ambas as pastas (destino e origem), se os campos estiverem vazios, o script alertará o usuário.
Boas cópias!
#!/bin/bash k=1 SAIDA1="pastas1.txt" SAIDA2="pastas2.txt" rm -f $SAIDA1 $SAIDA2 &> /dev/null echo -e "\nQUAL PASTA VOCE DESEJA COPIAR?" read pasta echo -e "\nPARA ONDE VOCE DESEJA COPIAR A PASTA $pasta?" echo -e "DIGITE SOMENTE O NOME DA PASTA (SEM O CAMINHO COMPLETO)\n" read destino if [ -z $pasta ] || [ -z $destino ]; then echo -e "\nOS 2 CAMPOS ACIMA DEVEM SER PREENCHIDOS\n" exit 1 fi if [ ! -d $pasta ]; then echo -e "\n $pasta NAO EXISTE, FAVOR VERIFICAR O CAMINHO CORRETO!\n" exit 1 fi find / -type d -iname *$destino* 2> /dev/null > $SAIDA1 if [ `cat $SAIDA1 | wc -l` -gt "1" ]; then echo -e "\nFOI LOCALIZADA MAIS DE 1 PASTA DE DESTINO, DIGITE O NUMERO DELA:\n" cat $SAIDA1 | while read line do echo "$k $line" >> $SAIDA2 let k++ done cat $SAIDA2 read num if [ -z $num ]; then echo -e "\nVOCE DEVE ESCOLHAR UM NUMERO, EXECUTE NOVAMENTE!\n" exit 1 fi pasta_correta=`grep ^$num $SAIDA2 | cut -d' ' -f2` cp -rvp "$pasta" "$pasta_correta" &> /dev/null if [ $? -eq 0 ]; then echo -e "\nPASTA $pasta COPIADA COM SUCESSO PARA $pasta_correta \n" else echo -e "\nERRO AO COPIAR A PASTA $pasta PARA $pasta_correta ---> VERIFICAR PERMISSOES!\n" fi else cp -rvp `cat $SAIDA1` "$destino" &> /dev/null if [ $? -eq 0 ]; then echo -e "\nPASTA $pasta COPIADA COM SUCESSO PARA $destino \n" else echo -e "\nERRO AO COPIAR A PASTA $pasta PARA $destino ---> VERIFICAR PERMISSOES!\n" fi fi
Instalar o Unity 3D Web Player Automatizado
Quebra-Galho-Faz-tudo-Configurator
Rwgimp28 :: para ter o gimp versão 2.8
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Vou destruir sua infância:) (8)
Interface gráfica com problema (2)
Instalar Linux em notebook Sony Vaio VPCEG13EB (13)









