101 votes

comment copier un répertoire et son contenu vers un nouvel emplacement sous un nouveau nom de répertoire ?

Je suis nouveau dans la ligne de commande Linux et j'essaie de me familiariser avec la commande copy en ce moment.

Quelqu'un peut-il me dire s'il est possible de copier un répertoire avec ses sous-répertoires et les fichiers associés dans un nouveau répertoire avec un nouveau nom, par exemple. directory_backup ?

Merci d'avance pour toute aide.

135voto

Zanna Points 65764

Vous pouvez utiliser cp con el -r (copier récursivement) et spécifier le nom du nouveau répertoire :

cp -r /path/to/directory /path/to/location/new-name

Dans la commande ci-dessus, remplacez les chemins donnés par les chemins réels.

Par exemple, pour copier stuff de mon répertoire personnel vers un existant répertoire nommé backup et nommez le nouveau répertoire stuff-backup (si ce répertoire existe déjà, notez que stuff sera copié en et non l'écraser), vous exécutez :

cp -r ~/stuff ~/backup/stuff-backup

~ est un raccourci pour votre répertoire personnel /home/$USER o /home/zanna dans mon cas. Vous pouvez l'omettre si le répertoire de travail actuel est votre répertoire personnel - vous pouvez le voir à partir de votre invite de commande

zanna@monster:~$
              ^--the ~ here is where I am - home!

Vous pouvez ajouter le -v (verbeux) pour que cp signaler chaque copie effectuée :

$ cp -vr stuff backup/stuff-backup
'stuff/thing1' -> 'backup/stuff-backup/thing1'
'stuff/thing2' -> 'backup/stuff-backup/thing2
...

14voto

Byte Commander Points 99026

La commande dont vous avez besoin est simplement cp qui signifie "copie".

Vous pouvez l'utiliser par exemple avec l'une de ces syntaxes :

cp SOURCEFILE TARGETFILE
cp SOURCEFILE TARGETDIRECTORY

La première variante vous permet de spécifier un nouveau nom de fichier pour le fichier cible, tandis que la deuxième variante crée une copie avec le même nom dans le répertoire cible. Vous devez bien sûr commencer par remplacer les caractères de remplacement en majuscules par des chemins d'accès valides.

Cependant, cp opère par défaut sur les fichiers uniquement, et non sur les répertoires. Pour qu'il puisse copier un répertoire complet avec tout son contenu de manière récursive, vous devez ajouter l'attribut -r option :

cp -r SOURCEDIRECTORY TARGETDIRECTORY

Vous pouvez en savoir plus sur le cp en tapant man cp dans votre terminal.

12voto

Rakesh C Points 176

Vous pouvez utiliser la commande ci-dessous pour copier un répertoire d'un endroit à un autre sous-répertoire.

cp -Rvp /home/edmuntu/data /home/edmuntu/mydata/

Explication de la commande :

  • -R = copier les répertoires de manière récursive
  • v = expliquer ce qui est fait
  • p = Il vous aidera à préserver votre permission et votre propriété avec des timestamps.

10voto

EvoW Points 21

Pour remplacer la commande cp, généralement utile, vous pouvez utiliser rsync, qui présente l'avantage supplémentaire de reproduire les autorisations et les horodatages de la structure de répertoire d'origine :

rsync -av dir/ newdir

-a archive -v verbose

Notez la barre oblique après le répertoire source.

8voto

user3407823 Points 1

cp est la commande qui remplit la fonction que vous recherchez. Elle signifie "copier" et c'est exactement ce qu'elle fait. La commande qui vous conviendrait dans cette situation est la suivante

cp -R source/ destination/

Cela permettrait de copier le source/ et tous ses sous-répertoires dans le dossier destination/ .

Si destination/ n'existe pas, il sera créé.

El -R signifie récursif, ce qui indique cp pour copier tous les sous-répertoires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X