Script de cópia (destino - origem) otimizado
Publicado por Alexandre Gonçalves Monteiro da Silva (última atualização em 07/09/2011)
[ Hits: 6.862 ]
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
Logs do daemontools - tradução de timestamp
burncd - programa para gravar ISOs
Configurar usuarios samba na boa sem dor de cabeça em modo texto
Minha solução para monitorar múltiplos termômetros no Slackware
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
HDMI não funciona no Mint 21.3 Cinnamon (1)
Removi o pacote snap e deu ruim (2)
Criar um script para testar pen drive (4)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba