Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/12/2017, à 18:39

DonutMan75

[Résolu] Copier et renommer ?

Bonsoir à tous,
quand on fait une copie manuelle d'un ensemble de fichiers vers un répertoire cible, l'interface graphique nous laisse les choix de remplacer, skipper ou bien renommer (en tout cas sous OSX, ce n'est pas le cas de Ubuntu 12.04 et j'ai pas testé sous 16.04LTS).

Je me demandais s'il existait une façon de renommer automatiquement lors de la copie de sorte qu'aucun fichier ne soit écrasé.

Exemple :

$ ls ./in/*
a
b
$ ls ./out/*
a
$ ma_commande ./in/* ./out/*
$ ls ./out/*
a
a_001
b
$ ma_commande ./in/* ./out/*
$ ls ./out/*
a
a_001
a_002
b
b_001

J'ai regardé les options de cp et rien ne semble faire l'affaire ("no-clobber" dit juste qu'on skip si j'ai bien compris).

man cp a écrit :

-n, --no-clobber
              do not overwrite an existing file (overrides a previous -i
              option)

Avez-vous des idées ?
Au pire, je peux faire une commande shell du genre ci-dessous (pseudo-code avec des effets de bord mais vous voyez l'idée).
Qu'en dites vous ?

Merci d'avance smile

Donut

#! /bin/sh
FICHIER="$1"
REPERTOIRE_CIBLE="$2"

N=0

TANT QUE REPERTOIRE_CIBLE/FICHIER_N existe FAIRE N=N+1
cp FICHIER REPERTOIRE_CIBLE/FICHIER_N

Dernière modification par DonutMan75 (Le 20/12/2017, à 09:14)

Hors ligne

#2 Le 19/12/2017, à 19:33

Compte anonymisé

Re : [Résolu] Copier et renommer ?

l'option -b de cp peut correspondre à tes besoins

$ > fichier1
$ cp -b fichier1 fichier2
$ ls fichier*
fichier1  fichier2
$ cp -b fichier1 fichier2
$ ls fichier*
fichier1  fichier2  fichier2~
$ rm fichier*~
$ cp --backup=t fichier1 fichier2
$ cp --backup=t fichier1 fichier2
$ ls fichier*
fichier1  fichier2  fichier2.~1~  fichier2.~2~

si le fichier existe, copie le fichier, sinon crée une sauvegarde

il existe plusieurs mode voir man

Dernière modification par Compte anonymisé (Le 19/12/2017, à 19:34)

#3 Le 19/12/2017, à 21:17

Roschan

Re : [Résolu] Copier et renommer ?

La meilleure solution serait d'utiliser une version encore supportée, et non pas une version obsolète comme 12.04, ça réglerait de facto le problème

Hors ligne

#4 Le 20/12/2017, à 09:13

DonutMan75

Re : [Résolu] Copier et renommer ?

Hello,
merci à vous deux pour vos retours.
Le -b fait l'affaire en effet, même si le contrôle du format du nom de sortie n'est pas parfait.

Bonne journée à tous et à bientôt !

Donut

Hors ligne