Script de cópia (destino - origem) otimizado
Publicado por Alexandre Gonçalves Monteiro da Silva (última atualização em 07/09/2011)
[ Hits: 7.108 ]
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
Automatizador de instalação para Arch Linux
Seletor de wallpaper para fluxbox modo grafico
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Montando e usando iso de um sistema dentro do outro (2)
Criar atalho para uma pasta na area de trabalho no Linux Mint? (0)
Precisa de ajuda com monitoramento ou problemas com Zabbix? (0)