shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] backup recursivo c compactação de todos os arquivos d


From: Julio Cardoso
Subject: Re: [shell-script] backup recursivo c compactação de todos os arquivos de um diretório
Date: Sat, 21 Nov 2015 16:11:48 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0

Grande Julio e colegas .
como eu faria para esse programa ficar in line ?

 PASTA=/etc/*
         for i in $PASTA/*
    do
        if [ -f "$i" ]; then
            tar -cvzf ${i##*/}.tar.gz $i
        fi
    done

Em 21-11-2015 16:08, Julio Cardoso escreveu:
Grande Chará
o programa nas duas soluções ficou assim

 PASTA=/etc/*
         for i in $PASTA/*
    do
        if [ -f "$i" ]; then
            tar -cvzf `basename $i`.tar.gz $i
        fi
    done


 PASTA=/etc/*
         for i in $PASTA/*
    do
        if [ -f "$i" ]; then
            tar -cvzf ${i##*/}.tar.gz $i
        fi
    done

Abraços


Em 21-11-2015 11:12, 'Julio C. Neves' address@hidden [shell-script] escreveu:
 
Fala Xará,
o Itamar te deu uma resposta super válida que usei durante muito tempo: os cmds basename e dirname, mas atualmente sá uso expansão de parâmetro por serem mais leves, builtin do shell e muito velozes. Veja:

$ var=/dir1/dir2/dir3/dirn/arq
# Para pegar somente o nome do arquivo (basename)
$ echo ${var##*/}
arq

Para pegar somente o caminho completo (dirname)
$ echo ${var%/*}
/dir1/dir2/dir3/dirn

Entenda em detalhes essas e outras expansões de parâmetros, lendo aqui (em bom português e com muitos exemplos)

Abcs,
Julio
@juliobash

P
róximos cursos de Shell
Cidade         Local Período
São Paulo 4Linux 07/12 a 11/12
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.

Em 20 de novembro de 2015 20:11, Julio Cardoso address@hidden [shell-script] <address@hidden> escreveu:
Lista
estive tentando montar um script para um backup de todos os arquivos,
com compactação de cada arquivo,
nesse caso com o for, a pasta atual do shell conter cada arquivo, na
hora de compactar preciso que retorne somente o nome do arquivo sem o
caminho completo. como eu sei por exemplo que o /etc/rsyslog são 2 /
usei o -f 3 -d '/', tentei bolar uma maneira de calcular quantos / cada
arquivo tem para retornar o valor automatico no lugar -f 3 , para
rsyslog.conf.tar.gz e não /etc/rsyslog.tar.gz , para poder usar de forma
genérica.

for i in /etc/*;do tar -cvzf   $i.tar.gz $i  ;done
for i in /etc/*;do tar -cvzf   `echo $i |cut -f 3 -d '/'`.tar.gz $i ;done
nesse segundo caso

rw-rw-r--  1 julio julio     658 Nov 20 19:00 usb_modeswitch.conf.tar.gz
-rw-rw-r--  1 julio julio     124 Nov 20 19:00 usb_modeswitch.d.tar.gz
-rw-rw-r--  1 julio julio     167 Nov 20 19:00 vdpau_wrapper.cfg.tar.gz
-rw-rw-r--  1 julio julio    9345 Nov 20 19:00 vga.tar.gz
-rw-rw-r--  1 julio julio    1500 Nov 20 19:00 vim.tar.gz
-rw-rw-r--  1 julio julio  325730 Nov 20 19:00 vmware-installer.tar.gz
-rw-rw-r--  1 julio julio  112955 Nov 20 19:00 vmware.tar.gz
-rw-rw-r--  1 julio julio     185 Nov 20 19:00 vmware-vix.tar.gz
-rw-rw-r--  1 julio julio     123 Nov 20 19:00 vtrgb.tar.gz
-rw-rw-r--  1 julio julio    2294 Nov 20 19:00 wgetrc.tar.gz
-rw-rw-r--  1 julio julio    1769 Nov 20 19:00 wildmidi.tar.gz
-rw-rw-r--  1 julio julio     817 Nov 20 19:00 wodim.conf.tar.gz
-rw-rw-r--  1 julio julio    8869 Nov 20 19:00 wpa_supplicant.tar.gz
-rw-rw-r--  1 julio julio   43021 Nov 20 19:00 X11.tar.gz
-rw-rw-r--  1 julio julio    5702 Nov 20 19:00 xdg.tar.gz
-rw-rw-r--  1 julio julio    2193 Nov 20 19:00 xml.tar.gz
-rw-rw-r--  1 julio julio    5331 Nov 20 19:00 xrdp.tar.gz
-rw-rw-r--  1 julio julio     117 Nov 20 19:00 xul-ext.tar.gz
-rw-rw-r--  1 julio julio     371 Nov 20 19:00 zsh_command_not_found.tar.gz
julio@julio-PC:~/11$



------------------------------------

------------------------------------

---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


------------------------------------

Links do Yahoo Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    address@hidden

<*> O uso que você faz do Yahoo Grupos está sujeito aos:
    https://info.yahoo.com/legal/br/yahoo/utos/terms/






reply via email to

[Prev in Thread] Current Thread [Next in Thread]