Re: apagar tudo e copiar tudo

2006-12-01 Por tôpico Carlos Alberto

Será que você poderia me explicar melhor estes comandos, abaixo...



[EMAIL PROTECTED]:/tmp/teste$ shopt dotglob
dotglob off
[EMAIL PROTECTED]:/tmp/teste$ shopt -s dotglob
[EMAIL PROTECTED]:/tmp/teste$ shopt dotglob
dotglob on



--
Cumprimentos
Carlos Alberto Mota Castro (Maranhão)
Estudante de Engenharia Elétrica
UNESP - FEIS - Ilha Solteira
Usuário GNU/Linux


Re: apagar tudo e copiar tudo

2006-12-01 Por tôpico Tiago Saboga
Em Sexta 01 Dezembro 2006 15:49, Carlos Alberto escreveu:
 Será que você poderia me explicar melhor estes comandos, abaixo...
Sem problemas. Recomendo de qualquer forma que você dê uma olhada na página de 
manual do bash (que é, reconheço, longa demais, complicada, mas vale a pena 
ir se familiarizando com ela pouco a pouco).

O shopt é um comando interno do bash (para comandos internos não há páginas de 
manual; por isso é preciso consultar a página do bash ou obter um help curto 
com `help shopt`. Ele permite alterar opções do shell. No caso, a opção 
dotglob, que diz para o shell se ele deve incluir arquivos ocultos quando 
fizer expansões ou não.

O valor padrão da opção é off, de forma que um `rm *` não remove os arquivos 
ocultos. Para alterar a opção, usei `shopt -s dotglob` (-s de set). Com ela 
em on, os arquivos ocultos são expandidos pelo asterisco. Depois, para 
retornar ao estado inicial, usei `shopt -u dotglob` (-u de unset). Não é 
estritamente necessário voltar ao estado inicial, pois a mudança da opção só 
é válida para a seção atual do shell.

Espero ter ajudado,

Tiago.



Re: apagar tudo e copiar tudo

2006-11-30 Por tôpico Carlos Alberto

e para copiar tudo, inclusive os ocultos, como faço? uso o mesmo regex?

Em 29/11/06, Marcos Lazarini [EMAIL PROTECTED] escreveu:


2006/11/29, Carlos Alberto [EMAIL PROTECTED]:
 Pessoal,
  Gostaria de saber como apagar e copiar todos os arquivos de um
diretório,
 inclusive os ocultos! Quando uso   rm -rf diretorio/*   não são
apagados
 os arquivos ocultos,  e  quando uso o comando  cp  -Rf  diretório/*
 novodiretorio, tambem,  os arquivos ocultos nao sao copiados. Alguem
sabe
 como faço isso?

Aha!
Isso é pq o * nao pega os arquivos q começam com ponto.
O mais fácil é vc fazer por exemplo:
'rm -rf diretório'
seguido de um
'mkdir diretório'
(lembrando de manter as permissões e donos)

Outra opção
'rm -rf diretório/[a-zA-Z0-9]*'
Sacou o efeito do [ ] ?

NUNCA, mas NUNCA caia na besteira de fazer algo como
'rm -rf diretório/.*'
Porque? Bom, esse é um exercício p/ o leitor hehehehehe

Qquer dúvida, é só perguntar.

--
Marcos





--
Cumprimentos
Carlos Alberto Mota Castro (Maranhão)
Estudante de Engenharia Elétrica
UNESP - FEIS - Ilha Solteira
Usuário GNU/Linux


Re: apagar tudo e copiar tudo

2006-11-30 Por tôpico Tiago Saboga
Em Quarta 29 Novembro 2006 17:00, Carlos Alberto escreveu:
 Pessoal,
 Gostaria de saber como apagar e copiar todos os arquivos de um diretório,
 inclusive os ocultos! Quando uso   rm -rf diretorio/*   não são apagados
 os arquivos ocultos,  e  quando uso o comando  cp  -Rf  diretório/*
 novodiretorio, tambem,  os arquivos ocultos nao sao copiados. Alguem sabe
 como faço isso?

Olá Carlos Alberto!

Para garantir a integridade dos seus arquivos ocultos, o bash exige que os 
pontos no início do arquivo estejam explícitos na sua linha de comando. Para 
reverter essa configuração, use o comando shopt. Veja o exemplo a seguir:

[EMAIL PROTECTED]:/tmp/teste$ touch .t1 t2
[EMAIL PROTECTED]:/tmp/teste$ ls
t2
[EMAIL PROTECTED]:/tmp/teste$ ls -a
.  ..  .t1  t2
[EMAIL PROTECTED]:/tmp/teste$ rm *
[EMAIL PROTECTED]:/tmp/teste$ ls -a
.  ..  .t1
[EMAIL PROTECTED]:/tmp/teste$ touch t2
[EMAIL PROTECTED]:/tmp/teste$ rm .*
rm: não é possível remover `.' ou `..'
rm: não é possível remover `.' ou `..'
[EMAIL PROTECTED]:/tmp/teste$ ls -a
.  ..  t2
[EMAIL PROTECTED]:/tmp/teste$ touch .t1
[EMAIL PROTECTED]:/tmp/teste$ ls -a
.  ..  .t1  t2
[EMAIL PROTECTED]:/tmp/teste$ shopt dotglob
dotglob off
[EMAIL PROTECTED]:/tmp/teste$ shopt -s dotglob
[EMAIL PROTECTED]:/tmp/teste$ shopt dotglob
dotglob on
[EMAIL PROTECTED]:/tmp/teste$ rm *
[EMAIL PROTECTED]:/tmp/teste$ ls -a
.  ..


Repare que eu não fazia a menor idéia de que isso era possível e nunca tinha 
nem ouvido falar do shopt. E olha que eu achava que já tinha percorrido mais 
de uma vez a página de manual do bash. Mas está lá, na seção Pathname 
Expansion

Tiago.



Re: apagar tudo e copiar tudo

2006-11-30 Por tôpico Marcos Lazarini

Sim!
Na verdade, esse é um truque do bash em específico, mas acho que
funciona nos outros tipos de shell tbm.
Vc pode generalizar tambem coisas como
*a.txt
ou
*[aA].txt
ou
*[aA]?.txt

(no caso, a ? funciona como o * mas limitado a apenas 1 caracter).

Aquela expressão [a-zA-Z0-9] nao cobre todos os casos possíveis,
apenas os usuais. Verifique c/ um ls -la se tem algum arquivo
escondido q não começa com nenhum caracter desse intervalo (algo como
um .ábaco ficaria de fora)


--
Marcos

2006/11/30, Carlos Alberto [EMAIL PROTECTED]:

e para copiar tudo, inclusive os ocultos, como faço? uso o mesmo regex?

Em 29/11/06, Marcos Lazarini [EMAIL PROTECTED]  escreveu:
 2006/11/29, Carlos Alberto  [EMAIL PROTECTED]:
  Pessoal,
   Gostaria de saber como apagar e copiar todos os arquivos de um
diretório,
  inclusive os ocultos! Quando uso   rm -rf diretorio/*   não são
apagados
  os arquivos ocultos,  e  quando uso o comando  cp  -Rf  diretório/*
  novodiretorio, tambem,  os arquivos ocultos nao sao copiados. Alguem
sabe
  como faço isso?

 Aha!
 Isso é pq o * nao pega os arquivos q começam com ponto.
 O mais fácil é vc fazer por exemplo:
 'rm -rf diretório'
 seguido de um
 'mkdir diretório'
 (lembrando de manter as permissões e donos)

 Outra opção
 'rm -rf diretório/[a-zA-Z0-9]*'
 Sacou o efeito do [ ] ?

 NUNCA, mas NUNCA caia na besteira de fazer algo como
 'rm -rf diretório/.*'
 Porque? Bom, esse é um exercício p/ o leitor hehehehehe

 Qquer dúvida, é só perguntar.

 --
 Marcos




--
Cumprimentos
Carlos Alberto Mota Castro (Maranhão)
Estudante de Engenharia Elétrica
UNESP - FEIS - Ilha Solteira
Usuário GNU/Linux




apagar tudo e copiar tudo

2006-11-29 Por tôpico Carlos Alberto

Pessoal,
Gostaria de saber como apagar e copiar todos os arquivos de um diretório,
inclusive os ocultos! Quando uso   rm -rf diretorio/*   não são apagados
os arquivos ocultos,  e  quando uso o comando  cp  -Rf  diretório/*
novodiretorio, tambem,  os arquivos ocultos nao sao copiados. Alguem sabe
como faço isso?

--
Cumprimentos
Carlos Alberto Mota Castro (Maranhão)
Estudante de Engenharia Elétrica
UNESP - FEIS - Ilha Solteira
Usuário GNU/Linux


Re: apagar tudo e copiar tudo

2006-11-29 Por tôpico Marcos Lazarini

2006/11/29, Carlos Alberto [EMAIL PROTECTED]:

Pessoal,
 Gostaria de saber como apagar e copiar todos os arquivos de um diretório,
inclusive os ocultos! Quando uso   rm -rf diretorio/*   não são apagados
os arquivos ocultos,  e  quando uso o comando  cp  -Rf  diretório/*
novodiretorio, tambem,  os arquivos ocultos nao sao copiados. Alguem sabe
como faço isso?


Aha!
Isso é pq o * nao pega os arquivos q começam com ponto.
O mais fácil é vc fazer por exemplo:
'rm -rf diretório'
seguido de um
'mkdir diretório'
(lembrando de manter as permissões e donos)

Outra opção
'rm -rf diretório/[a-zA-Z0-9]*'
Sacou o efeito do [ ] ?

NUNCA, mas NUNCA caia na besteira de fazer algo como
'rm -rf diretório/.*'
Porque? Bom, esse é um exercício p/ o leitor hehehehehe

Qquer dúvida, é só perguntar.

--
Marcos