vim ne conserve pas le lien symbolique sur sshfs


1

J'ai des problèmes avec les liens symboliques et sshfs. J'utilise l'option '-o follow_symlinks' pour suivre les liens symboliques côté serveur, mais chaque fois que je modifie un fichier lié symboliquement côté client avec vim, une copie de celui-ci est créée côté serveur, ce qui signifie qu'il ne s'agit plus d'un lien symbolique.

Configurez un lien symbolique côté serveur:

me@machine1:~$ echo foo > test.txt
me@machine1:~$ mkdir test
me@machine1:~$ cd test
me@machine1:~/test$ ln -s ../test.txt test.txt
me@machine1:~/test$ ls -al test.txt
lrwxrwxrwx 1 me me 11 Jan  5 21:13 test.txt -> ../test.txt
me@machine1:~/test$ cat test.txt
foo
me@machine1:~/test$ cat ../test.txt
foo

Jusqu'ici tout va bien. Maintenant:

me@machine2:~$ mkdir test
me@machine2:~$ sshfs me@machine1:test test -o follow_symlinks
me@machine2:~$ cd test
me@machine2:~/test$ vim test.txt
[in vim, add a new line "bar" to the file]
me@machine2:~/test$ cat test.txt
foo
bar

Observez maintenant ce que cela fait au fichier côté serveur:

me@machine1:~/test$ ls -al test.txt
-rw-r--r-- 1 me me 19 Jan  5 21:24 test.txt
me@machine1:~/test$ cat test.txt
foo
bar
me@machine1:~/test$ cat ../test.txt
foo

Comme vous pouvez le voir, il en a fait une copie et n’a édité que la copie.

Comment puis-je le faire fonctionner afin qu'il suive le lien symbolique lors de la modification du fichier?


Est-ce qu'un autre programme 'respecte le lien symbolique' non plus? je veux dire, vim ouvre ce qui est donné par le système de fichiers ...
akira

@akira: echo bar >> test.txtsur la machine client conserve le lien symbolique
HighCommander4

1
Est-ce toujours un problème? D'après la question, il semble que le fichier ne soit pas copié, mais qu'il supprime le lien symbolique et crée un nouveau fichier. Le réglage -o transform_symlinksserait-il une meilleure alternative?
vol7ron
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.