Difference entre renommer un fichier et creer

sorcier -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Certains systèmes d’exploitation fournissent l’appel système RENAME pour renommer un fichier. Y
a-t-il la moindre différence entre cette attribution d’un nouveau nom et la copie du fichier sous un
nouveau nom, suivie de la suppression du fichier original ?
A voir également:

1 réponse

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Oui. Prenons par un exemple un fichier de 1Go qui s'appelle "pouet.avi". Si tu fais une copie vers "pouet2.avi", tu vas passer un certain temps à dupliquer les 1Go (car c'est vraiment une copie, pas un lien symbolique ou un hard link, cf commande ln). De plus si tu n'as pas 1Go d'espace libre cette opération va échouer.

Concrètement la recopie d'un fichier (avec la commande "cp") crée un nouvel inode (une entrée dans le système de fichier) qui indique à quel endroit du disque dur se trouve la donnée, avec quels droits etc... C'est donc une opération coûteuse si la donnée à recopier est volumineuse.

Lorsque que tu déplaces (en particulier renomme) un fichier avec la commande "mv" et que ce fichier reste sur la même partition, la donnée n'est ni déplacée, ni recopiée physiquement sur le disque dur. Seul l'inode est corrigé. C'est pour cela que cette opération est quasi instantanée.

De la même façon, une suppression de fichier est très rapide puisqu'elle consiste essentiellement à supprimer un inode dans le système de fichier sans réellement remettre à zéro la zone sur laquelle était stockée la donnée.

En conclusion, il vaut donc mieux faire un "mv" plutôt qu'un "cp" suivi d'un "rm" si tu déplaces un fichier.

Bonne chance
0