Autor Tópico: Como apagar ficheiros na consola de modo seguro?  (Lida 17919 vezes)

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #30 Online: 02 de Setembro de 2007, 13:11 »
nem sei como meu velho tinha tempo para fazer todos aqueles exercícios, e depois do trabalho energia para corrigir tudo.

eu sei como sim, eh pq ele quis passar pra vc o melhor q ele podia na epoca.  ;)


Eu tenho absoluta certeza que sim! Ainda assim não sei como tinha tempo, mas vou te falar, enquanto a grande maioria sofria no curso eu ia na velocidade de cruzeiro, como o meu Pai foi sábio e viu muito a frente de onde eu estava!!!

Espero ser assim com meu filho!

[]'s

Cristiano.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Mythus

  • Usuário Ubuntu
  • *
  • Mensagens: 264
  • Liga dos Dinos
    • Ver perfil
    • http://www.protopage.com/skopein
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #31 Online: 02 de Setembro de 2007, 23:50 »
Bem, a rotina esta enorme, até porque existem mais comentários do que linhas propriamente ditas, mas eu acho os comentários essenciais, então vai com eles mesmo. Ajuda ai, roda ela e testa os bug's pra mim.

Eu vi a mensagem mas confesso que passei a semana sem poder usar a máquina direito, mas, tão logo quando dê, farei as experiências.

Concordo, Cristiano, o Mythus mandou bem no "troll topic". O problema é que o Mythus tem sempre razao, ele é advogado  ;) O Mestre Mythus tem o poder da retórica!!!  :D  :D  :D E eu concordo com o q ele disse lá  ;)

Eunir, você me mata   ;D

Se meus problemas fossem trolls eu era um homem feliz. :D

Eu também fiz Eng. Elétrica, mas apenas por 2,5 anos. Até hoje não sei se estava com a razão em mudar ou se devia ter continuado. Não soube, não sei, nem saberei. Aliás, debaixo do sol, tem alguém que saiba? hehe

eu sei como sim, eh pq ele quis passar pra vc o melhor q ele podia na epoca.  ;)

Eu tenho absoluta certeza que sim! Ainda assim não sei como tinha tempo, mas vou te falar, enquanto a grande maioria sofria no curso eu ia na velocidade de cruzeiro, como o meu Pai foi sábio e viu muito a frente de onde eu estava!!!

Espero ser assim com meu filho!

Pow... inveja de vocês... família, filhos, tsc, tsc... meu tempo que não chega para essas coisas.

[]'s
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

Offline Eunir Augusto

  • Usuário Ubuntu
  • *
  • Mensagens: 853
  • Embaixador do Projeto Fedora Brasil
    • Ver perfil
    • Comunidade PCLinuxOS Brasil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #32 Online: 03 de Setembro de 2007, 08:48 »
Eu também fiz Eng. Elétrica, mas apenas por 2,5 anos. Até hoje não sei se estava com a razão em mudar ou se devia ter continuado. Não soube, não sei, nem saberei. Aliás, debaixo do sol, tem alguém que saiba? hehe
(...)
Pow... inveja de vocês... família, filhos, tsc, tsc... meu tempo que não chega para essas coisas.

[]'s

família e filhos é a tendência natural das coisas  :D

qto à elétrica, relaxa, Mythus, pois sei muito bem tudo q passou pela tua cabeça até o momento de mudar de opção, e ir pra humanas  :D se vc tah feliz, é o q importa  :D  :D  :D

[ ]s pra vcs e fui!!!
Comunidade PCLinuxOS Brasil - Assinatura modificada a pedido do grande amigo Ricardo (rjbgbo)

Offline Mythus

  • Usuário Ubuntu
  • *
  • Mensagens: 264
  • Liga dos Dinos
    • Ver perfil
    • http://www.protopage.com/skopein
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #33 Online: 04 de Setembro de 2007, 20:04 »
Acho que vou colocar a cópia do terminal aqui e vocês já vão descobrindo o que aconteceu hehehe

Fiz o teste num linux chamado BigLinux.

Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
240522.jpg                                     ies4linux-latest.tar.gz.1
Documento1.bak~                                kde-kpat
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF            Remocao.pdf
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF  remove_seguro.sh
eh_particao.sh                                 remove_seguro.sh~
ies4linux-latest.tar.gz
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ies4linux-latest.tar.gz.1 -i
rm: Rotina executada com opções. Comando rm será executado.
/bin/rm: remove arquivo comum `ies4linux-latest.tar.gz.1'? y
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh 240*22.jpg
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh kde-kpat Remocao.pdf
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh remove_seguro.sh~
iinternet5@internet5:~/amsn_received$ ls /home/iinternet5/.Trash*
/home/iinternet5/.Trash      /home/iinternet5/.Trash.~2~
/home/iinternet5/.Trash.~1~  /home/iinternet5/.Trash.~3~
iinternet5@internet5:~/amsn_received$ rm /home/iinternet5/.Trash*
iinternet5@internet5:~/amsn_received$ mkdir ~/.Trash
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]* ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz
rm: Impossível remover "../amsn_received/../../iinternet5/ies4linux-latest.tar.gz": Verifique.
iinternet5@internet5:~/amsn_received$ ls
Documento1.bak~                                eh_particao.sh
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF            ies4linux-latest.tar.gz
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF  remove_seguro.sh
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]*
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh arquivo_inexistente ../../iinternet5/ies4linux-latest.tar.gz
$ ./remove_seguro.sh ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~
iinternet5@internet5:~/amsn_received$ ls
eh_particao.sh  remove_seguro.sh
iinternet5@internet5:~/amsn_received$ ls ~/.Trash
Documento1.bak~                      ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF  ies4linux-latest.tar.gz
iinternet5@internet5:~/amsn_received$ find / -name arquivo_criado_e_deletado* 2> /dev/null
/home/iinternet5/.local/share/Trash/files/arquivo_criado_e_deletado_pelo_ambiente_grafico
/home/iinternet5/.local/share/Trash/info/arquivo_criado_e_deletado_pelo_ambiente_grafico.trashinfo
iinternet5@internet5:~/amsn_received$       

Por essa eu não esperava :)
Se não entenderem o que aconteceu, eu explico mais tarde (ou amanhã).
« Última modificação: 04 de Setembro de 2007, 20:06 por Mythus »
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

Offline Eunir Augusto

  • Usuário Ubuntu
  • *
  • Mensagens: 853
  • Embaixador do Projeto Fedora Brasil
    • Ver perfil
    • Comunidade PCLinuxOS Brasil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #34 Online: 04 de Setembro de 2007, 20:19 »
Por essa eu não esperava :)
Se não entenderem o que aconteceu, eu explico mais tarde (ou amanhã).

q raios houve  ??? o ambiente gráfico do teu pc 5 restringiu alguma coisa, mas não sei pq...  :-\ algo no codigo não está sudoer, eu acredito  :-\

[ ]s
Comunidade PCLinuxOS Brasil - Assinatura modificada a pedido do grande amigo Ricardo (rjbgbo)

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #35 Online: 04 de Setembro de 2007, 20:22 »
Explica melhor para mim Mythus, hoje eu devo estar pegando no tranco, porque não entendi o que deveria entender.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Mythus

  • Usuário Ubuntu
  • *
  • Mensagens: 264
  • Liga dos Dinos
    • Ver perfil
    • http://www.protopage.com/skopein
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #36 Online: 05 de Setembro de 2007, 05:05 »
Vamos lá, passo a passo:

Listando os arquivos do diretório
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
240522.jpg                                     
Documento1.bak~                               
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF           
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF 
eh_particao.sh                                 
ies4linux-latest.tar.gz
ies4linux-latest.tar.gz.1
kde-kpat
Remocao.pdf
remove_seguro.sh
remove_seguro.sh~

Removendo um arquivo usando o parêmetro -i
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ies4linux-latest.tar.gz.1 -i
rm: Rotina executada com opções. Comando rm será executado.
/bin/rm: remove arquivo comum `ies4linux-latest.tar.gz.1'? y


Removendo um arquivo com máscara (*)
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh 240*22.jpg
Removendo dois arquivos ao mesmo tempo e um com o nome completo
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh kde-kpat Remocao.pdf
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh remove_seguro.sh~

Listando ~/.Trash*
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls /home/iinternet5/.Trash*
/home/iinternet5/.Trash     
/home/iinternet5/.Trash.~1~ 
/home/iinternet5/.Trash.~2~
/home/iinternet5/.Trash.~3~

Observação: A distro BigLinux não tem ~/.Trash como lixeira, por isso os arquivos removidos de modo seguro foram, na verdade, renomeados para esses listados acima!

Limpando a sujeira
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ rm /home/iinternet5/.Trash*
Criando um ~/.Trash para ser usado como teste, já que a lixeira na verdade deve ser em outro lugar.
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ mkdir ~/.Trash
Fazendo novos testes removendo arquivos com caminhos com pontos
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]* ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz
rm: Impossível remover "../amsn_received/../../iinternet5/ies4linux-latest.tar.gz": Verifique.

Observação: Quando ocorre um erro em um dos arquivos, os demais não são removidos. No comando acima deveria atingir 3 arquivos. Segue abaixo à lista e depois tendo removê-los com um parâmetro de cada vez.

Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
Documento1.bak~                               
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF           
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF 
eh_particao.sh
ies4linux-latest.tar.gz
remove_seguro.sh

Primeiro parêmetro
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]*
Funcionou, agora o segundo com um arquivo inexistente
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh arquivo_inexistente ../../iinternet5/ies4linux-latest.tar.gz
Talvez aqui foi o que vocês não entederam. Devo ter pulado essa parte na cola. Aqui causou um erro e novamente o arquivo ies4linux-latest.tar.gz não pôde ser deletado. Então usei novamente o caminho ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz (o mesmo usado lá em cima quando disse que era impossível remover e funcionou.

Coloquei aqui um caminho só para sacanear :P
Código: [Selecionar]
$ ./remove_seguro.sh ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~
Listagem final:
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
eh_particao.sh
remove_seguro.sh

Listando a pseudo-lixeira
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls ~/.Trash
Documento1.bak~                     
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF 
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF
ies4linux-latest.tar.gz

Descobrindo o caminho da lixeira verdadeira: No ambiente gráfico, criei um arquivo no desktop e deletei, mandando-o para a lixeira que, até então estava vazia, ainda que no meu "~/.Trash" existirem 4 arquivos. Para isso, após a deleção, foi procurar por nome de arquivo
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ find / -name arquivo_criado_e_deletado* 2> /dev/null
/home/iinternet5/.local/share/Trash/files/arquivo_criado_e_deletado_pelo_ambiente_grafico
/home/iinternet5/.local/share/Trash/info/arquivo_criado_e_deletado_pelo_ambiente_grafico.trashinfo

Achei dois arquivos! Prestem atenção no caminho. Em todos os nossos testes, supunhamos a existência de ~/.Trash ou /ponto-de-montagem/.Trash-$USER, daí, no primeiro teste que vou fazer, escolho uma distro que não tem sua lixeira no lugar que imaginávamos.

Outra coisa detalhe é que numa hora ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz  é um caminho válido e noutra não é mais (quando era a segunda expressão) e o caminho ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~ muito mais bizarro não teve nenhum problema (e apensar de nunca ter sido também o segundo termo da expressão).

É isso.
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #37 Online: 05 de Setembro de 2007, 12:47 »
Vamos lá, passo a passo:

Listando os arquivos do diretório
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
240522.jpg                                     
Documento1.bak~                               
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF           
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF 
eh_particao.sh                                 
ies4linux-latest.tar.gz
ies4linux-latest.tar.gz.1
kde-kpat
Remocao.pdf
remove_seguro.sh
remove_seguro.sh~

Removendo um arquivo usando o parêmetro -i
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ies4linux-latest.tar.gz.1 -i
rm: Rotina executada com opções. Comando rm será executado.
/bin/rm: remove arquivo comum `ies4linux-latest.tar.gz.1'? y

Mudei a rotina para rodar o rm usando a opção -i, apenas para dar mais segurança.

Citar
Removendo um arquivo com máscara (*)
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh 240*22.jpg
Removendo dois arquivos ao mesmo tempo e um com o nome completo
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh kde-kpat Remocao.pdf
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh remove_seguro.sh~

Listando ~/.Trash*
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls /home/iinternet5/.Trash*
/home/iinternet5/.Trash     
/home/iinternet5/.Trash.~1~ 
/home/iinternet5/.Trash.~2~
/home/iinternet5/.Trash.~3~

Observação: A distro BigLinux não tem ~/.Trash como lixeira, por isso os arquivos removidos de modo seguro foram, na verdade, renomeados para esses listados acima!

Limpando a sujeira
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ rm /home/iinternet5/.Trash*
Criando um ~/.Trash para ser usado como teste, já que a lixeira na verdade deve ser em outro lugar.
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ mkdir ~/.Trash

Quer mesmo expandir o testa para outras distribuições?

Citar
Fazendo novos testes removendo arquivos com caminhos com pontos
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]* ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz
rm: Impossível remover "../amsn_received/../../iinternet5/ies4linux-latest.tar.gz": Verifique.

Observação: Quando ocorre um erro em um dos arquivos, os demais não são removidos. No comando acima deveria atingir 3 arquivos. Segue abaixo à lista e depois tendo removê-los com um parâmetro de cada vez.

Minha intenção sempre foi que a rotina ou trabalhe com todos os arquivos ou não trabalhe com nenhum, se em algum lugar ela ignora um arquivo com problemas eu errei (conforme minha intenção).

Citar
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
Documento1.bak~                               
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF           
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF 
eh_particao.sh
ies4linux-latest.tar.gz
remove_seguro.sh

Primeiro parêmetro
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]*
Funcionou, agora o segundo com um arquivo inexistente
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh arquivo_inexistente ../../iinternet5/ies4linux-latest.tar.gz

Não entendi, funcionou aqui ou não? E para mim nenhum dos dois arquivos existem.

Citar
Talvez aqui foi o que vocês não entederam. Devo ter pulado essa parte na cola. Aqui causou um erro e novamente o arquivo ies4linux-latest.tar.gz não pôde ser deletado. Então usei novamente o caminho ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz (o mesmo usado lá em cima quando disse que era impossível remover e funcionou.

Coloquei aqui um caminho só para sacanear :P
Código: [Selecionar]
$ ./remove_seguro.sh ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~

Este caminho ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~ não é igual a este ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz, e também não é igual a este ../../iinternet5/ies4linux-latest.tar.gz (para mim os dois últimos caminhos apontam para o mesmo objeto, e são inválidos, enquanto o primeiro é o único válido da lista).

Mais uma vez não entendi.

Citar
Listagem final:
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls
eh_particao.sh
remove_seguro.sh

Listando a pseudo-lixeira
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ls ~/.Trash
Documento1.bak~                     
ED_1_2007_TCU_ACE_TCE_ABT_FINAL.PDF 
ED_7_2007_AGU_PROCURADORRES_FIN_PROV_DISC.PDF
ies4linux-latest.tar.gz

Descobrindo o caminho da lixeira verdadeira: No ambiente gráfico, criei um arquivo no desktop e deletei, mandando-o para a lixeira que, até então estava vazia, ainda que no meu "~/.Trash" existirem 4 arquivos. Para isso, após a deleção, foi procurar por nome de arquivo
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ find / -name arquivo_criado_e_deletado* 2> /dev/null
/home/iinternet5/.local/share/Trash/files/arquivo_criado_e_deletado_pelo_ambiente_grafico
/home/iinternet5/.local/share/Trash/info/arquivo_criado_e_deletado_pelo_ambiente_grafico.trashinfo

Achei dois arquivos! Prestem atenção no caminho. Em todos os nossos testes, supunhamos a existência de ~/.Trash ou /ponto-de-montagem/.Trash-$USER, daí, no primeiro teste que vou fazer, escolho uma distro que não tem sua lixeira no lugar que imaginávamos.

Outra coisa detalhe é que numa hora ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz  é um caminho válido e noutra não é mais (quando era a segunda expressão) e o caminho ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~ muito mais bizarro não teve nenhum problema (e apensar de nunca ter sido também o segundo termo da expressão).

É isso.
« Última modificação: 05 de Setembro de 2007, 12:55 por clcampos »
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Mythus

  • Usuário Ubuntu
  • *
  • Mensagens: 264
  • Liga dos Dinos
    • Ver perfil
    • http://www.protopage.com/skopein
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #38 Online: 05 de Setembro de 2007, 13:14 »
Mudei a rotina para rodar o rm usando a opção -i, apenas para dar mais segurança.

Sem problemas! Como eu tinha também colocado o -i acabei sem perceber que você também tinha feito isso.

Quer mesmo expandir o testa para outras distribuições?

Nada! Nem precisa! Iria dar um trabalho da peste de descobrir onde seria em cada distro. De todas as distros que eu já usei, essa é a primeira que põe a lixeira num lugar diferente.

Minha intenção sempre foi que a rotina ou trabalhe com todos os arquivos ou não trabalhe com nenhum, se em algum lugar ela ignora um arquivo com problemas eu errei (conforme minha intenção).

Ah tá. Se você quis assim, então tudo bem. Eu pensei que ele trabalharia com todos os certos menos o errado, para o qual daria a mensagem de erro. Por mim tudo bem, mas se esse é o caso a mensagem de erro não deveria ser "Rotina não executada. Impossível remover 'X': Verifique."? Ou pelo menos outra mensagem dizendo que nenhum dos arquivos foi removido devido ao erro num dado arquivo?


Citação de: Mythus
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh ED_[17]*
Funcionou, agora o segundo com um arquivo inexistente
Código: [Selecionar]
iinternet5@internet5:~/amsn_received$ ./remove_seguro.sh arquivo_inexistente ../../iinternet5/ies4linux-latest.tar.gz

Não entendi, funcionou aqui ou não? E para mim nenhum dos dois arquivos existem.

Todos os caminhos que eu usei ../ em algum lugar, eu sempre usava <tab> para autocompletar o caminho então eu posso afirmar com certeza que os arquivos existiam. Tanto que num outro momento eu usei o mesmo caminho, só que como sendo o primeiro arquivo da lista e naquele caso funcionou, neste não.

Mais tarde eu vou fazer os mais testes, inclusive com arquivos com nomes mais estranhos, daí eu posto os resultados. Mas no mais está funcionando bem o script. :) Principalmente em "condições normais de temperatura e pressão" :D
« Última modificação: 05 de Setembro de 2007, 13:22 por Mythus »
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.

Offline Eunir Augusto

  • Usuário Ubuntu
  • *
  • Mensagens: 853
  • Embaixador do Projeto Fedora Brasil
    • Ver perfil
    • Comunidade PCLinuxOS Brasil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #39 Online: 05 de Setembro de 2007, 15:18 »
De todas as distros que eu já usei, essa é a primeira que põe a lixeira num lugar diferente.

Q q o Bruno Gonçalves tava pensando (ou almejando) pra trocar a lixeira de lugar  ???
Comunidade PCLinuxOS Brasil - Assinatura modificada a pedido do grande amigo Ricardo (rjbgbo)

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #40 Online: 05 de Setembro de 2007, 15:20 »
Citar
Este caminho ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~ não é igual a este ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz, e também não é igual a este ../../iinternet5/ies4linux-latest.tar.gz (para mim os dois últimos caminhos apontam para o mesmo objeto, e são inválidos, enquanto o primeiro é o único válido da lista).

Bem, vamos lá Mythus, vou tentar explicar porque considero (tendo como base apenas as informações disponíveis) que os PATH's passados não existem, ou ao menos não correspondem ao mesmo PATH do primeiro exemplo.

Nos itens abaixo estou acreditando que a você sempre esta dentro da pasta amsn_received.

  • Ponto 1: Você faz menção a estar trabalhando no diretório: iinternet5@internet5:~/amsn_received. Com isto cheguei a conclusão que o usuário se chama iinternet5 (num pc de nome internet5). Portanto o PATH correto do diretório que esta trabalhando é /home/iinternet5/amsn_received
  • Chegando ao caminho do PATH ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~:
    • PATH inicial /home/iinternet5/amsn_received
    • Após o primeiro .. (/home/iinternet5/)
    • Após o segundo .. (/home/)
    • Após o iinternet5  (/home/iinternet5/)
    • Após o terceiro .. (/home/)
    • Após o quarto .. (/)
    • Após o quinto .. (/)
    • Após o home (/home)
    • Após o segundo iinternet5 (/home/iinternet5)
    • Após o amsn_received (/home/iinternet5/amsn_received)
    • O último item é o nome do arquivo Documento1.bak~ (/home/iinternet5/amsn_received/Documento1.bak~)
  • Chegando ao caminho do PATH ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz:
    • PATH inicial /home/iinternet5/amsn_received
    • Após o primeiro .. (/home/iinternet5/)
    • Após o amsn_received (/home/iinternet5/amsn_received)
    • Após o segundo .. (/home/iinternet5/)
    • Após o terceiro .. (/home/)
    • Após o iinternet5 (/home/iinternet5)
    • O último item é o nome do arquivo ies4linux-latest.tar.gz (/home/iinternet5/ies4linux-latest.tar.gz)
  • Chegando ao caminho do PATH ../../iinternet5/ies4linux-latest.tar.gz:
    • PATH inicial /home/iinternet5/amsn_received
    • Após o primeiro .. (/home/iinternet5/)
    • Após o segundo .. (/home/)
    • Após o iinternet5  (/home/iinternet5/)
    • O último item é o nome do arquivo ies4linux-latest.tar.gz (/home/iinternet5/ies4linux-latest.tar.gz)

Mythus, eu fiz tanta confusão que eu espero não estar errado e que você possa me entender, mas como pode ver os três exemplos não chegam exatamente ao mesmo PATH para cada arquivo (estão sublinhadas as respostas), e vou deixar só cada arquivo e onde chega abaixo para reforçar:

  • O PATH ../../iinternet5/../../../home/iinternet5/amsn_received/Documento1.bak~ informa que o arquivo Documento1.bak~ esta dentro de /home/iinternet5/amsn_received/
  • O PATH ../amsn_received/../../iinternet5/ies4linux-latest.tar.gz informa que o arquivo ies4linux-latest.tar.gz esta dentro de /home/iinternet5/
  • O PATH ../../iinternet5/ies4linux-latest.tar.gz informa que o arquivo ies4linux-latest.tar.gz esta dentro de /home/iinternet5/

Portanto como você só apresentou o conteúdo do diretório /home/iinternet5/amsn_received não tem como confirmar que o arquivo ies4linux-latest.tar.gz também existe na pasta raiz so seu usuário (/home/iinternet5/).

Sacou agora minha dúvida? Estou errado? To ficando doido?
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

alarcon

  • Visitante
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #41 Online: 05 de Setembro de 2007, 16:32 »
Não sei se já foi resolvido, mas vi aqui o clcampos falando que estava com problemas de apagar arquivos que contém espaços no seu nome, então venho escrever neste tópico dando um "pitaco", se me permitem, embora não saiba se realmente vai funcionar ou se é isso que estão precisando, mas talvez dê uma luz para possíveis outras soluções.

Bem é o seguinte, se o problema é com arquivo com espaços por que não fazer isso:

Código: [Selecionar]
#!/bin/bash

pasta_corrente=$( pwd )

#remover espaços

for i in *; do mv "$i" `echo $i | tr ' ' '_'`; done

bem este script remove espaços colocando isso "_" no seu lugar .
« Última modificação: 05 de Setembro de 2007, 16:40 por alarcon »

Offline Mythus

  • Usuário Ubuntu
  • *
  • Mensagens: 264
  • Liga dos Dinos
    • Ver perfil
    • http://www.protopage.com/skopein
Re: Como apagar ficheiros na consola de modo seguro?
« Resposta #42 Online: 05 de Setembro de 2007, 19:09 »
Bem, vamos lá Mythus, vou tentar explicar porque considero (tendo como base apenas as informações disponíveis) que os PATH's passados não existem, ou ao menos não correspondem ao mesmo PATH do primeiro exemplo.
(...)
Sacou agora minha dúvida? Estou errado? To ficando doido?

 ;D ;D ;D ;D
Você não iria adivinhar nunca! hehehehe
Mas você tem razão! Eu que estava errado! É que eu entrei em ~/amsn_received e copiei um monte de tralha que estava em ~/Desktop e ~/ daí realmente havia um pacote do ie4linux no raiz do home e como eu usava o autocompletar do bash, nem fiquei prestando muito atenção de se estava ou não dentro do amsn_recieved.
Vacilo meu, mas que existia, existia! ;)
Abraços,
_________________
Não é programador, não é hacker. Formado em Direito pela UFPb. Usuário de Linux em tempo integral: Linux User Number: 174012.