De Chipaca (Ubuntu One dev) responder a um semelhante pergunta :
No entanto, se você editá-lo com um editor que renomeie o arquivo, crie um novo, copie o conteúdo e exclua o original (como a maioria dos editores), e o syncdaemon esteja em execução, ele verá a renomeação e o delete e seu URL público se referirá primeiro ao arquivo renomeado e, em seguida, desaparecerá.
Este é um efeito colateral infeliz da maneira como estamos fazendo arquivos públicos e algo que precisamos mudar, mas agora é o que é.
Basicamente, quando você salva um arquivo com a maioria dos editores, você está realmente substituindo o arquivo original pela versão modificada. Você pode ver por si mesmo usando o comando stat
:
hello@world:~$ stat -c %i hello.txt
4971
O comando stat -c %i
retorna o número de inode de um arquivo.
Executando o mesmo comando novamente depois de ter editado hello.txt
no gedit
retorna um número de inode diferente:
hello@world:~$ stat -c %i hello.txt
3794
Se eu simplesmente acrescentar uma linha de texto ao final do arquivo usando >>
, o arquivo será simplesmente modificado, não substituído:
hello@world:~$ echo "The End." >> hello.txt
hello@world:~$ stat -c %i hello.txt
3794
Encontrei uma maneira um pouco estranha de contornar essa limitação no Ubuntu One:
-
Crie uma cópia do arquivo publicado:
cp hello.txt hello-copy.txt
-
Faça todo o seu trabalho na cópia em vez do arquivo publicado:
gedit hello-copy.txt
-
Quando você quiser atualizar o arquivo publicado, execute o seguinte comando:
cat hello-copy.txt > hello.txt