De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 18 de Maio de 1997
Uma complementação bastante interessante sobre a dica veiculada no dia 5 de maio me foi enviada pelo Alexandre Niero, do Instituto de Computação da Unicamp. Aí vai:
Na dica veiculada em 02/05/97, sobre a remoção de arquivos, acredito ser importante acrescentar a dica de como remover os arquivos que contém caracteres especiais, caracteres de controle de shell, caracteres tipo wildcards, arquivos contendo o caracter espaço, e caracteres não digitáveis.
É importante que o administrador (principalmente Unix) saiba como removê-los.
Os conceitos também podem ser aplicados na movimentação e cópia dos arquivos.
1- Caracteres Especiais:
São exemplos de caracteres especiais e de controle de shell: (, ), #, $, &
Exemplos de nomes de arquivos:
#abc (rre )letter $sh &tt
Para remover os arquivos iniciados com os caracteres acima utilizar:
rm ./<arquivo>
ou
rm "<arquivo>"
ou ainda
rm '<arquivo>'
exemplos:
rm ./#abc rm "(rre" rm "&a" rm '$sh'
2- Arquivos com nomes de caracteres tipo wildcard:
Exemplo de wildcard: *
exemplo de nomes de arquivo com wildcards:
a* *a *a*
Estes caracteres podem causar um enorme "dano", removendo coisas inesperadas. Veja o exemplo:
user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:32 *ab* drwxr-xr-x 2 user group 512 May 7 19:32 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg user@host% rm *ab* user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:33 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../
O comando rm *ab* acima removeu TODOS os arquivos do diretorio!!!
Uma forma segura é utilizar o nome do arquivo desejado entre aspas duplas ou simples:
rm "*ab*" rm '*ab*'
exemplo:
user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:32 *ab* drwxr-xr-x 2 user group 512 May 7 19:32 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg user@host% rm *ab* user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:32 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg
Assim, apenas o arquivo *ab* foi removido, conforme seria desejável
3- Arquivos com caracter espaço:
São arquivos que foram criados com caracteres de espaço no nome. Este caracter pode estar no inicio ou no meio do nome do arquivo. Exemplos:
user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:45 a b c drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:42 a b c user@host% rm a b c rm: a: No such file or directory rm: b: No such file or directory rm: c: No such file or directory
estes arquivos podem ser removidos utilizando-se o nome entre aspas duplas ou simples:
user@host% rm "a b c" ' a b c' user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../
4- Caracteres não digitáveis:
Exemplos são arquivos com caracteres de controle, caracteres especiais de outros Sistemas operacionais ou contendo acentos que não possam ser reproduzidos na console atual.
Estes arquivos apenas podem ser removidos utilizando-se a opção de remoção interativa, ou rm -i. Neste caso deve ser digitado um y ou Y para confirmar quais arquivos devem ser excluidos.
A opção interativa é bastante segura, e pode ser utilizada para remover também os arquivos citados nos tópicos anteriores.
Exemplo:
user@host% ls -al total 3 -rw-r--r-- 1 user group 0 May 7 19:45 a b c -rw-r--r-- 1 user group 0 May 7 19:45 *ab* drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:42 a b c -rw-r--r-- 1 user group 0 May 7 19:32 abg -rw-r--r-- 1 user group 0 May 7 19:32 dab -rw-r--r-- 1 user group 0 May 7 19:32 dabg user@host% rm -i * rm: remove ` a b c'? y rm: remove `*ab*'? y rm: remove `a b c'? n rm: remove `abg'? y rm: remove `dab'? y rm: remove `dabg'? y user@host% ls -al total 3 drwxr-xr-x 2 user group 512 May 7 19:45 ./ drwxr-x--x 7 user group 2048 May 7 18:38 ../ -rw-r--r-- 1 user group 0 May 7 19:42 a b c
— Alexandre Niero<BR> <niero (a) dcc unicamp br><BR> Instituto de Computacao - Unicamp<BR>
"O salário de um jogador de basquete nao tá dando nem pra cesta básica."
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários