• [^] # Re: Tu as raison

    Posté par (site web personnel, Mastodon) . En réponse au message accès concurrentiel aux fichiers. Évalué à 4.

    C'est incorrect. Le mv n'aura aucun problème, même si quelqu'un écrit dedans au même moment.

    tth@redlady:~/A$ ls -l
    total 4
    -rw-r--r-- 1 tth tth 29 Mar 10 05:52 foo.txt
    tth@redlady:~/A$ mv foo.txt > quux.txt
    mv: missing destination file operand after 'foo.txt'
    Try 'mv --help' for more information.
    tth@redlady:~/A$ ls -l
    total 4
    -rw-r--r-- 1 tth tth 29 Mar 10 05:52 foo.txt
    -rw-r--r-- 1 tth tth 0 Mar 10 05:52 quux.txt
    tth@redlady:~/A$
    

    Là, le mv il dit qu'il a plus de genoux...

    Quand un programme a ouvert un fichier, il se fiche de savoir s'il est déplacé, même supprimé. Il ne retient que le file descriptor, qui n'est qu'un identifiant d'inode (pour faire simple) et peu importe si le fichier est déplacé ou supprimé.

    Ce qui est valable quand les fichiers concernés (source+copie) sont sur le même filesystem, l'opération mv étant dans ce cas atomique.

    Par contre, si il y a changement de fs, j'ai quand même un doute sur le déroulement des opérations...