GNU/Linux >> Tutoriels Linux >  >> Linux

Comment copier un fichier et créer les répertoires cibles en même temps ?

Je veux cp aaa/deep/sea/blob.psd vers bbb/deep/sea/blob.psd

Comment puis-je faire la copie si le deep et sea les répertoires n'existent pas sous bbb pour que la copie crée à la fois les répertoires nécessaires et copie le fichier ?

En ce moment, je reçois
No such file or directory car les profondeurs et la mer n'existent pas.

J'ai parcouru les pages d'aide de l'homme et d'autres questions, mais rien ne me saute aux yeux.

Le plus proche que j'ai est d'utiliser rcp pour le répertoire :

rcp -r aaa/deep/sea/ bbb/deep/sea/

bien que cela copie tout le répertoire et son contenu et je veux juste un seul fichier. Essayer de faire cela a cependant donné cp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory

Réponse acceptée :

Essayez d'utiliser cette fonction suivante pour une telle situation :

copy_wdir() { mkdir -p -- "$(dirname -- "$2")" && cp -- "$1" "$2" ; }

et utilisez-le comme

copy_wdir aaa/deep/sea/blob.psd bbb/deep/sea/blob.psd

Au fait, GNU cp a un --parents option. C'est vraiment proche de ce que vous voulez, mais pas exactement.
Il créera également aaa répertoire dont vous n'avez apparemment pas besoin. Cependant, vous pouvez d'abord cd vers aaa et copier comme :

cd aaa && cp --parents deep/sea/blob.psd ../bbb/

Linux
  1. Comment copier des fichiers et changer la propriété, les autorisations en même temps

  2. Comment créer et interroger un système de fichiers BTRFS

  3. Comment copier un fichier dans plusieurs répertoires à l'aide de la commande gnu cp

  4. Ping et tcpdump en même temps

  5. Linux :Comment utiliser un fichier en entrée et en sortie en même temps ?

Comment créer des répertoires à partir d'un fichier texte sous Linux

Copier des fichiers et créer des répertoires cibles en même temps

Comment afficher et créer des fichiers et des répertoires cachés sous Linux

Comment créer et utiliser un fichier d'échange sous Linux

Comment copier des fichiers et des répertoires dans un terminal Linux

En quoi le temps CPU et l'utilisation du CPU sont-ils identiques ?