Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

déplacer / renommer

10 réponses
Avatar
Thomas
bonjour :-)


quand on fait ça on appelle ça "déplacer" (move) :

mv old-dir/name new-dir/

quand on fait ça on appelle ça "renommer" (rename) :

mv old-name new-name


y a-t-il une manière concise et appropriée de designer cette opération ?

mv old-dir/old-name new-dir/new-name

--
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/

10 réponses

Avatar
Alain Ketterlin
Thomas writes:
quand on fait ça on appelle ça "déplacer" (move) :
mv old-dir/name new-dir/
quand on fait ça on appelle ça "renommer" (rename) :
mv old-name new-name

Pour moi les deux opérations sont des déplacements. La première forme
est une facilité d'utilisation qui n'oblige pas Í  répéter le nom de la
destination (qui sera le même que celui de la source) -- et au passage
permet de déplacer plusieurs fichiers vers le même répertoire
destination en une seule commande.
La vraie distinction est entre renommer et copier+supprimer : le
renommage se fait entre chemins dans le même file-system ; si par contre
les chemins atterrissent sur des file-systems différents, il faut copier
(même si on déplace des répertoires) puis supprimer la source. C'est
pour cela que la commande s'appelle mv et pas rename (comme l'appel
système qui fait le travail quand on renomme).
"Déplacer" est donc un terme générique, qui subsume "renommer" aussi
bien que "copier puis supprimer".
y a-t-il une manière concise et appropriée de designer cette opération ?
mv old-dir/old-name new-dir/new-name

Tous tes exemples sont des déplacements, et on ne peut pas être plus
précis tant qu'on ne connaÍ®t pas leur localisation (en termes de
file-systems).
-- Alain.
P/S: il semble que la notion de "même file-system" puisse être plus ou
moins précise (par exemple sur ZFS -- o͹ on peut déplacer entre
file-systems du même pool -- ou sous Linux -- o͹ on ne peut pas déplacer
entre montages distincts du même file-system). Bon, vous voyez l'idée.
De toute façon, il semble que mv essaie rename(), puis passe Í  la copie
si il prend EXDEV en réponse (c'est mandaté par POSIX).
Avatar
Marc SCHAEFER
Thomas wrote:
quand on fait ça on appelle ça "déplacer" (move) :
mv old-dir/name new-dir/
quand on fait ça on appelle ça "renommer" (rename) :
mv old-name new-name

et quand on fait ceci:
mv chemin-1/fichier chemin-2/fichier
avec chemin-[12] sur des systèmes de fichiers, on appelle cela copier,
et ce n'est pas atomique (contrairement au mv sur le même fs, que
cela soit un déplacement ou un renommage).
y a-t-il une manière concise et appropriée de designer cette opération ?
mv old-dir/old-name new-dir/new-name

Euh, déplacer, renommer ou copier? :)
Globalement c'est une opération de renommage mais du chemin complet.
Une modification, donc, de comment on adresse le fichier. Un changement
d'adresse?
Avatar
Marc SCHAEFER
Thomas wrote:
quand on fait ça on appelle ça "déplacer" (move) :
mv old-dir/name new-dir/
quand on fait ça on appelle ça "renommer" (rename) :
mv old-name new-name

et quand on fait ceci:
mv chemin-1/fichier chemin-2/fichier
avec chemin-[12] sur des systèmes de fichiers, on appelle cela copier (*),
et ce n'est pas atomique (contrairement au mv sur le même fs, que
cela soit un déplacement ou un renommage).
y a-t-il une manière concise et appropriée de designer cette opération ?
mv old-dir/old-name new-dir/new-name

Euh, déplacer, renommer ou copier? :)
Globalement c'est une opération de renommage mais du chemin complet.
Une modification, donc, de comment on adresse le fichier. Un changement
d'adresse?
(*) et supprimer l'original.
Avatar
Marc SCHAEFER
Thomas wrote:
quand on fait ça on appelle ça "déplacer" (move) :
mv old-dir/name new-dir/
quand on fait ça on appelle ça "renommer" (rename) :
mv old-name new-name

et quand on fait ceci:
mv chemin-1/fichier chemin-2/fichier
avec chemin-[12] sur des systèmes de fichiers différents, on appelle
cela copier (*), et ce n'est pas atomique (contrairement au mv sur le
même fs, que cela soit un déplacement ou un renommage).
y a-t-il une manière concise et appropriée de designer cette opération ?
mv old-dir/old-name new-dir/new-name

Euh, déplacer, renommer ou copier? :)
Globalement c'est une opération de renommage mais du chemin complet.
Une modification, donc, de comment on adresse le fichier. Un changement
d'adresse?
(*) et supprimer l'original.
Avatar
Thomas
In article ,
Alain Ketterlin wrote:
Thomas writes:
quand on fait ça on appelle ça "déplacer" (move) :
mv old-dir/name new-dir/
quand on fait ça on appelle ça "renommer" (rename) :
mv old-name new-name

Pour moi les deux opérations sont des déplacements.
"Déplacer" est donc un terme générique, qui subsume "renommer" aussi
bien que "copier puis supprimer".
y a-t-il une manière concise et appropriée de designer cette opération ?
mv old-dir/old-name new-dir/new-name

Tous tes exemples sont des déplacements, et on ne peut pas être plus
précis tant qu'on ne connaÍ®t pas leur localisation (en termes de
file-systems).

merci Í  vous 2 :-)
considérez que c'est tjr fait sur le même file-system.
je pose la question pour savoir comment écrire dans mon svn log.
supposons que j'opte pour "move" (Marc a l'aire favorable Í  "rename" ?) :
move A to B
(je pense que pour A j'utiliserai tjr old-dir/old-name, et jamais
old-name seul.)
comment est-ce que les gens pourront savoir au 1er coup d'oeil si B
désigne un contenant de destination, ou le nom de l'objet renommé
(new-dir ou new-dir/new-name) ?
--
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/
Avatar
Thomas
In article <62ead236$0$22283$,
Thomas wrote:
In article ,
Alain Ketterlin wrote:
Thomas writes:
> quand on fait ça on appelle ça "déplacer" (move) :
>
> mv old-dir/name new-dir/
>
> quand on fait ça on appelle ça "renommer" (rename) :
>
> mv old-name new-name
Pour moi les deux opérations sont des déplacements.

"Déplacer" est donc un terme générique, qui subsume "renommer" aussi
bien que "copier puis supprimer".
> y a-t-il une manière concise et appropriée de designer cette opération ?
>
> mv old-dir/old-name new-dir/new-name
Tous tes exemples sont des déplacements, et on ne peut pas être plus
précis tant qu'on ne connaÍ®t pas leur localisation (en termes de
file-systems).

merci Í  vous 2 :-)
considérez que c'est tjr fait sur le même file-system.
je pose la question pour savoir comment écrire dans mon svn log.
supposons que j'opte pour "move" (Marc a l'air favorable Í  "rename" ?) :
move A to B
(je pense que pour A j'utiliserai tjr old-dir/old-name, et jamais
old-name seul.)

je me suis trompé :
j'avais l'habitude d'écrire :
Move name from old-dir to new-dir.
comment est-ce que les gens pourront savoir au 1er coup d'oeil si B
désigne un contenant de destination, ou le nom de l'objet renommé
(new-dir ou new-dir/new-name) ?

pour cette fois-ci, je ne me suis pas compliqué la vie, j'ai mis comme
la dernière fois :
Move / Rename old-dir/old-name to new-dir/new-name.
c'est un peu "batard", donc si vous avez une meilleure idée pour la
prochaine fois ...
--
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/
Avatar
Marc SCHAEFER
Thomas wrote:
supposons que j'opte pour "move" (Marc a l'aire favorable Í  "rename" ?) :

J'ai toujours considéré le chemin dans son ensemble, donc renommage me
va.
Mais on peut aussi considérer que c'est un déplacement dans
l'arborescence :)
C'est complètement égal.
si je devais écrire une doc en français je ferais un truc du genre:
Il suffit de renommer (*) gr͢ce ͠ la commande UNIX mv.
(*) au sens mv(1)
[ en ayant expliqué au début de la doc que whatever(x) signifie
man x whatever
]
comment est-ce que les gens pourront savoir au 1er coup d'oeil si B
désigne un contenant de destination, ou le nom de l'objet renommé
(new-dir ou new-dir/new-name) ?

non, sauf si tu mets un / Í  ton contenant, si je te suis bien.
Mais est-ce important?
Avatar
Thomas
In article <tcfsv2$qp7$,
Marc SCHAEFER wrote:
Thomas wrote:
supposons que j'opte pour "move" (Marc a l'aire favorable Í  "rename" ?) :

J'ai toujours considéré le chemin dans son ensemble, donc renommage me
va.
Mais on peut aussi considérer que c'est un déplacement dans
l'arborescence :)
C'est complètement égal.
si je devais écrire une doc en français je ferais un truc du genre:
Il suffit de renommer (*) gr͢ce ͠ la commande UNIX mv.
(*) au sens mv(1)
[ en ayant expliqué au début de la doc que whatever(x) signifie
man x whatever
]

c'est pas une doc o͹ on peut s'étaler, c'est un log, donc il faut être
court :
http://svn.savannah.gnu.org/viewvc/rapid/branches/gtkada-2.24/?view=log
comment est-ce que les gens pourront savoir au 1er coup d'oeil si B
désigne un contenant de destination, ou le nom de l'objet renommé
(new-dir ou new-dir/new-name) ?

non, sauf si tu mets un / Í  ton contenant, si je te suis bien.

sauf que ce ne sont pas (tjr) des chemins de systèmes de fichiers
(c'était ce qui m'a paru le plus simple pour poser la question),
donc ça ne va pas.
Mais est-ce important?

je dirais que c'est important d'être sans ambiguité.
mais peut-être que le "Move / Rename" convient, et que je n'ai pas
besoin de chercher autre chose ...
--
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/
Avatar
Alain Ketterlin
Thomas writes:
[...]
sauf que ce ne sont pas (tjr) des chemins de systèmes de fichiers

[...]
Tout ce que j'ai écrit dans ce fil concerne les chemins (et je crois que
c'est pareil pour Marc).
Pour qu'au moins certains n'aient pas complètement perdu leur temps, je
reviens sur cette remarque de Marc :
non, sauf si tu mets un / Í  ton contenant, si je te suis bien.


Marc parle bien de la *destination*, mais avec le mv des GNU coreutils,
il y a une entourloupe lorsque la *source* est un lien symbolique vers
un répertoire, et qu'on l'écrit avec un slash final. Il y a quelques
détails dans la doc des coreutils (pas dans le man). C'est piégeux.
-- Alain.
Avatar
Thomas
In article ,
Alain Ketterlin wrote:
Thomas writes:
[...]
sauf que ce ne sont pas (tjr) des chemins de systèmes de fichiers
[...]
Tout ce que j'ai écrit dans ce fil concerne les chemins (et je crois que
c'est pareil pour Marc).
Pour qu'au moins certains n'aient pas complètement perdu leur temps, je
reviens sur cette remarque de Marc :

désolé si tu as eu l'impression de perdre ton temps,
l'analogie me paraissait correcte,
parce que les entités que je manipule (objets, fonctions, ...) peuvent :
- être déplacées sans changer de nom,
- être renommées sans changer de place,
- les 2 Í  la fois.
--
RAPID maintainer
http://savannah.nongnu.org/projects/rapid/