Re: apagar tudo e copiar tudo
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
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
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
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
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
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, 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