GNU/Linux >> Tutoriels Linux >  >> Linux

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

Nous copions généralement des fichiers d'un emplacement à un autre emplacement existant à l'aide de commandes telles que cp , rsync , et scp etc. Si l'emplacement cible n'existe pas, nous le créons d'abord, puis le fichier de copie vers cet emplacement nouvellement créé. Jusqu'à présent, c'est ainsi que je copie habituellement des fichiers d'un emplacement à un autre à partir de la ligne de commande. Saviez-vous que nous pouvons copier un fichier et créer automatiquement le répertoire de destination s'il n'existe pas ? Non? Aucun problème! Dans ce guide, nous verrons comment copier des fichiers et créer des répertoires cibles en même temps, avec une seule commande, sous Linux.

Veuillez noter que je ne parle pas de combiner deux commandes. Par exemple, n'importe qui pourrait le faire en combinant deux commandes comme ci-dessous :

$ mkdir -p destination && cp source_file destination

Mais, ce n'est pas une seule commande. Ici, nous avons utilisé deux commandes, à savoir mkdir et cp . Il s'agit en fait d'une commande à une ligne. Maintenant, laissez-moi vous montrer comment effectuer la même tâche en utilisant une seule commande.

Copiez des fichiers et créez des répertoires cibles en même temps sous Linux

Nous pouvons le faire en utilisant trois méthodes différentes. Nous verrons d'abord comment le faire en utilisant install commande.

Méthode 1 – utilisation de install commande

L'install La commande copie les fichiers vers n'importe quelle destination de votre choix sous Linux. Il est spécialement utilisé à cette fin par des systèmes de construction comme automake . Il fait partie de GNU coreutils, vous n'avez donc pas besoin de l'installer.

Pour copier un fichier et créer le répertoire de destination en même temps en utilisant install commande, exécutez simplement :

$ install -D source-file destination-directory

Exemple :

La commande suivante copie un fichier nommé sk.txt vers un répertoire cible nommé ostechnix . Veuillez noter que le répertoire cible n'existe pas. Nous allons copier le fichier et créer le répertoire de destination en même temps avec install commande comme ci-dessous :

$ install -D sk.txt ostechnix/sk.txt

Vérifiez si le fichier a été copié dans ostechnix répertoire en listant son contenu avec ls commande :

$ ls ostechnix/
sk.txt

Voir? Je n'ai pas créé le répertoire cible auparavant. La commande d'installation a créé le répertoire automatiquement et y a enregistré le fichier.

Pratique, non ? En effet! C'est l'une des fonctionnalités utiles de l'install commande. On peut l'utiliser dans des scripts shell.

Il y a quelques limitations dans cette méthode. Vous devez mentionner le nom du fichier source à la fin de l'emplacement de destination. Si vous ne spécifiez pas le nom du fichier, install la commande ne le copiera pas et affichera l'erreur suivante :

$ install -D sk.txt ostechnix/
install: target 'ostechnix/' is not a directory: No such file or directory

Vous pouvez copier un fichier à la fois. Il n'y a aucun moyen de copier plusieurs fichiers vers plusieurs destinations en utilisant install commande.

Nous pouvons également copier des fichiers et modifier la propriété, les autorisations en même temps en utilisant install commande comme décrit dans le guide suivant.

  • Comment copier des fichiers et modifier la propriété et les autorisations en même temps

Pour plus de détails sur la commande d'installation, reportez-vous à sa page de manuel.

$ man install

Méthode 2 : utilisation de cp commande

Généralement, nous utilisons cp commande pour copier des fichiers d'un endroit à un autre. Le cp la commande a une option nommée --parents ce qui nous permet de copier toute la structure de répertoires du fichier source et de l'enregistrer dans la destination.

Par exemple, disons, le sk.txt le fichier est enregistré dans ~/Downloads répertoire et vous vouliez le copier dans ~/Documents annuaire. Si vous copiez le fichier en utilisant cp commande de ~/Downloads vers ~/Documents , le fichier sera enregistré dans une structure de répertoire comme celle-ci -> ~/Documents/Downloads/sk.txt .

Faisons-le en temps réel et voyons ce qui se passe.

$ cp --parents Downloads/sk.txt ~/Documents/

Exécutez maintenant l'tree commande pour vérifier ~/Documents contenu du répertoire :

$ tree Documents/
Documents/
└── Downloads
    └── sk.txt

1 directory, 1 file

N'oubliez pas que nous n'avons créé aucun répertoire dans ~/Documents emplacement. Le --parents option du cp La commande a conservé la structure de répertoires du fichier source.

Contrairement à l'install commande, vous n'avez pas besoin de spécifier le nom du fichier à la fin du répertoire de destination.

Ce n'est pas directement lié à notre sujet. Cependant, le cp La commande a créé automatiquement les répertoires cibles, c'est-à-dire qu'elle a conservé la structure de répertoires du fichier source.

Méthode 3 – utilisation de rsync commande

Rsync est une solution idéale pour copier et sauvegarder des données entre des répertoires locaux et distants. Pour copier des fichiers et créer des répertoires cibles simultanément à l'aide de la commande rsync, exécutez :

$ rsync sk.txt ostechnix/

Où le répertoire nommé ostechnix n'a pas à exister. Rsync le créera automatiquement et y enregistrera le fichier source.

Parmi ces trois commandes, je préfère le install commande. Parce que je peux créer des répertoires imbriqués (répertoire dans un autre répertoire) en utilisant install commande. Le cp et rsync les commandes ne peuvent créer qu'un seul répertoire, pour autant que je sache. Veuillez me corriger si je me trompe.

Lire connexe :

  • Comment conserver la propriété et les autorisations de fichiers intactes lors de la copie de fichiers ou de répertoires

Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Comment créer un alias et utiliser la commande Alias ​​sous Linux

  3. Copier des fichiers et des répertoires sous Linux

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

  5. Trouvez les fichiers et répertoires les plus volumineux sous Linux

Comment déplacer des fichiers et des répertoires sous Linux (commande mv)

Comment utiliser la commande cp pour copier des fichiers et des répertoires

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

4 façons de transférer des fichiers et des répertoires sous Linux

Commande Stat :Afficher les attributs des fichiers et des répertoires

Copier des fichiers en toute sécurité avec la commande SCP