[DÚVIDA] A (não) sobrescrita de arquivos

Iniciado por Shakmatton, 01 de Outubro de 2008, 18:53

tópico anterior - próximo tópico

Shakmatton

Eu tenho o Ubuntu a quase 1 ano, mas só agora percebi uma coisa curiosa...

Eu tenho uma pasta A com arquivos 1_A, 2_A e 3_A.
Se eu copiar esta pasta e editar em outro lugar os nomes dos arquivos, por exemplo, de 1_A para 1A, de 2_A para 2A e de 3_A para 3A, e depois tentar colocar esta minha pasta A modificada para substituir a minha antiga pasta A, então vou sobrescrevê-la, certo ? Pelo menos é o que ocorre no Windows.

Mas no Ubuntu, ocorre uma coisa um tanto diferente... acontece a substituição, os arquivos novos ficam dentro da pasta A, e os antigos arquivos da pasta A (1_A, etc...) continuam lá...

No começo achei interessante, pois achei que seria ótimo para poupar trabalho de separar os arquivos originais para estes não serem removidos... mas depois mudei de idéia, a gente usa o método de sobrescrição justamente pra poder deletar o conteúdo antigo de uma pasta, deletando todos os arquivos de uma vez...

Então eu queria saber... será que existe alguma maneira de fazer isso como acontece no Windows ? Ou o sistema é assim mesmo ?
(É uma dúvida básica, mas não sabia como perguntar isso, então resolvi criar o tópico...)

Obrigado aí gente.

Tota

O que estou vendo aqui em sua dúvida é um problema conceitual.

No GNU/Linux pastas não são realmente "pastas", mas um arquivo com uma indicação de onde estão os outros arquivos.( UHHH?????)

Sim é isto. Logo, ela também tem permissões como os "arquivos".

Então, quando você transferiu de lugar a pasta A, ela levou consigo as permissões, e o local onde estavam os arqivos 1_A, etc.

Logo, na "volta" da pasta A ao local de origem, como ela não é uma "pasta" mas um arquivo, ela não é sobrescrita, mas acrescenta os arquivos novos.

No inicio é complicado de entender, mas a arquitetura do GNU/Linux foi sempre pensada em segurança.

A solução é apagar a pasta (ex.) /Home/A antes de mover de/xxx/A para /home/A.

Agora vamos piorar a coisa.

Existem diferenças entre o comando cp ( copy ) e o comando mv ( move)

No comando mv ( que é o que voce esta usando ) os arquivos 1_A permanecem e os arquivos 1A são adicionados no arquivo "pasta".

Lembre que voce, usuario, não mandou apagar os arquivos 1-A, só a "pasta" e ela é um arquivo chamado pasta, logo eles permanecem.

A resposta acima é como a "coisa" realmente funciona.

Voce pode pesquisar na Net por "hierarquia de pastas e arquivos no Linux" caso minha resposta te pareça meio doida de entender.

[],s

clcampos

Pergunta... No windows se você move (é um exemplo, claro) o diretório /home/clcampos/A para dentro do diretório /home/clcampos/Desktop e nele já existe um diretório "A" todos os arquivos do diretório de destino são deletados?

Jurava que isso não acontecia no windows, e que acontecia no Linux, e sempre achei que fosse um bug. Fiz um teste aqui e no 8.04 e pelo gnome tive a oportunidade de mesclar, não perdendo nada, enquanto que pelo terminal não pude mover o diretório porque o "O diretório não esta vazio" (no caso o destino).

Como disse muito bem o Tota é um problema conceitual, e acho que não perder os arquivos que já estão no destino algo bem mais sensato, já que perder dados quase sempre é ruim.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Shakmatton

#3
Valeu pelas respostas...

É, devia ter imaginado que no Linux seria prioridade haver este comportamento, pensando na segurança.
Eu vou reler este tópico novamente com mais calma, pois agora estou um pouco com pressa e não entendi de primeira algumas coisas aí...

Mas enfim, obrigado desde já pelo esclarecimento.


Ok, então a solução é apagar a pasta original mesmo, ou então aprender a dominar os comandos de mover/copiar pelo terminal, coisa que não consigo me acostumar devido ao vício com o outro sistema operacional..

Valeu...