Sous Windows, lorsque vous copiez un fichier dans un répertoire contenant déjà un fichier portant ce nom, il vous demande si vous souhaitez:
Lorsque je fais cela dans Ubuntu, je n'ai pas cette 3ème option (ce qui est souvent une option très utile). Y a-t-il un moyen de faire cela dans Ubuntu?
Malheureusement, Nautilus n'a pas cette option.
Vous pouvez essayer un autre gestionnaire de fichiers comme Dolphin .
(nécessite le nivers référentiel)
Vous pouvez également utiliser le programme en ligne de commande cp(1)
avec l'option de sauvegarde:
cp --backup -t DESTINATION SOURCE [SOURCE...]
Ceci a les effets suivants qui peuvent être contrôlés avec d'autres options comme décrit dans la page de manuel de cp(1)
:
--backup[=CONTROL]
- effectue une sauvegarde de chaque fichier de destination existant
-b
- ressemble à--backup
mais n'accepte pas d'argument
-S
,--suffix=SUFFIX
- remplace le suffixe de sauvegarde habituelLe suffixe de sauvegarde est
~
, sauf s'il est défini avec--suffix
ouSIMPLE_BACKUP_SUFFIX
. La méthode de contrôle de version peut être sélectionnée via l'option--backup
ou via la variable d'environnementVERSION_CONTROL
. Voici les valeurs:
none
name__,off
name__: ne faites jamais de sauvegardes (même si--backup
est donné)numbered
name__,t
name__: effectuer des sauvegardes numérotéesexisting
name__,nil
name__: numéroté si des sauvegardes numérotées existent, simple sinonsimple
name__,never
name__: faites toujours des sauvegardes simples
cp --backup=existing --suffix=.orig -t ~/Videos ~/Music/*
Cela copiera tous les fichiers de ~/Music
dans ~/Videos
. Si un fichier du même nom existe à la destination, il est renommé en ajoutant .orig
à son nom en tant que sauvegarde. Si un fichier portant le même nom que la sauvegarde existe, la sauvegarde est renommée en ajoutant .1
et, le cas échéant, .2
, etc. Ensuite seulement, le fichier source est copié vers la destination.
Si vous souhaitez copier des fichiers dans des sous-répertoires de manière récursive, utilisez:
cp -R --backup=existing --suffix=.orig -t ~/Videos ~/Music
trouvé ceci sur le superutilisateur :
#!/bin/bash
cp -vn "$1" "$2"/ || cp -vn "$1" "$2"/"${1##*/}"~"$(md5sum "$1" | cut -f1 -d' ')"
Le fichier portant le même nom est renommé avec le md5sum ajouté au nom. Si vous enregistrez le fichier sous un nom de fichier tel que "saveCopy", vous pouvez utiliser find
comme ceci pour l'exécuter:
find . -name 'z*.jpg' -exec ./saveCopy {} /tmp/Extracted/ \;
Pour plus d'informations à ce sujet, voir le lien.
Il y avait une solution (ultracopier) à cette question dans ce forum auparavant: voir https://ubuntuforums.org/showthread.php?t=2251859 D'après cette discussion, il peut être intégré à Nautilus.