GNU/Linux >> Tutoriels Linux >  >> Linux

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

La copie de fichiers ou de répertoires est l'une des activités de base de chaque système d'exploitation. L'activité de sauvegarde consiste essentiellement à créer une copie des fichiers et des répertoires. Sur le système Linux, nous pouvons utiliser la commande cp pour le faire.

Comme nous l'avons mentionné ci-dessus, la commande cp est une commande pour créer une copie de fichiers et de répertoires. Voici quelques exemples de commande cp qui pourraient être utiles au quotidien

1) commande cp

Il s'agit d'une utilisation cp très basique. Pour copier un nom de fichier monfichier.txt d'un endroit à un autre, on peut taper comme ceci :

$ cp myfile.txt /home/pungki/office

Si nous ne tapons pas le chemin absolu, cela signifie que nous copions un fichier dans le répertoire courant. Dans l'exemple ci-dessus, myfile.txt se trouve dans /home/pungki/Documents . Nous n'avons pas besoin de taper /home/pungki/Documents/myfile.txt pour copier monfichier.txt si nous sommes dans ce /home/pungki/Documents annuaire. Tandis que /home/pungki/office est un dossier où le fichier sera copié.

2) Copier plusieurs fichiers en même temps

Pour copier plusieurs fichiers en même temps, nous pouvons simplement placer les fichiers derrière la commande de copie séparée par un espace. Voici un exemple :

$ cp file_1.txt file_2.txt file_3.txt /home/pungki/office

3) Copier un répertoire

Copier un répertoire est un peu délicat. Vous devez ajouter -r ou -R possibilité de le faire. L'option -r ou -R signifie récursif. Cette option est obligatoire si le répertoire est vide ou non. Voici un exemple :

$ cp -r directory_1 /home/pungki/office

Une dernière chose à noter est que vous devez supprimer la barre oblique finale derrière le nom du répertoire. Sinon, vous aurez un message d'erreur du type cp :omitting directory 'directory_1/'

Si vous avez cette erreur, le répertoire ne sera pas copié dans le dossier de destination.

4) Créez des liens physiques vers des fichiers au lieu de les copier

Copier un fichier signifie que vous devez disposer d'un peu d'espace sur le stockage pour stocker les fichiers copiés. Parfois, pour une raison quelconque, vous souhaiterez peut-être créer un "raccourci" ou des liens vers les fichiers au lieu de les copier. Pour ce faire, nous pouvons utiliser -l option.

$ cp -l file_4.txt /home/pungki/office

À partir de la capture d'écran ci-dessus, nous voyons qu'un lien physique de file_4.txt a été copié dans /home/pungki/office/file_4.txt . Il est marqué par le même inode, 835386 . Mais veuillez noter que les liens physiques ne peuvent pas être créés dans des répertoires. Prenons un exemple ci-dessous.

Le répertoire d'origine_1 a le numéro d'inode 278230

Le fichier original_5.txt porte le numéro d'inode 279231

Effectuez la commande cp sur le répertoire_1

Le répertoire copié_1 a le numéro d'inode 274800

Le fichier copié_5.txt avait le numéro d'inode 279231. Idem avec son fichier d'origine

5) Créer des liens symboliques vers des fichiers

Il existe un autre type de liens appelés softlinks ou liens symboliques . Nous utilisons -s possibilité de le faire. Voici un exemple de commande.

$ cp -s /home/pungki/Documents/file_6.txt file_6.txt

La création de liens symboliques ne peut être effectuée que dans le répertoire courant. Sur la capture d'écran ci-dessus, nous voulons créer des liens symboliques à partir du répertoire source - /home/pungki/Documents/file_6.txt vers /home/pungki/office . Mais pour créer des liens symboliques, je dois à l'intérieur /home/pungki/office comme dossier de destination. Une fois que j'ai réussi à être là, je peux lancer cp -s commande ci-dessus.

Ensuite, lorsque vous listez le fichier avec des détails, vous verrez que /home/pungki/office/file_6.txt pointe vers le fichier d'origine. Il est marqué d'une flèche après le nom du fichier.

6) Copier sans suivre les liens symboliques dans la source

Pour ce faire, nous pouvons utiliser -P option. Lorsque la commande cp a trouvé un fichier avec des liens symboliques, elle le copie tel quel. Jetez un œil à l'exemple ci-dessous.

$ cp -P file_6.txt ./movie

Comme vous pouvez le voir, la commande cp copiera file_6.txt comme si. Le type de fichier reste un lien symbolique.

7) Copier avec les liens symboliques suivants dans la source

Maintenant, nous pouvons le faire avec -L option. Fondamentalement, c'est le contraire de l'option -P ci-dessus. Voici l'exemple.

$ cp -L file_6.txt ./movie

Avec cette option, le fichier copié est le même fichier avec le fichier source de file_6.txt . Ceci est connu à partir de la taille du fichier. Le fichier copié a 50 octets taille du fichier alors que le fichier_6.txt en tant que lien symbolique a 33 octets taille du fichier.

8) Archiver les fichiers

Lorsque nous allons copier un répertoire, nous utiliserons -r ou -R option. Mais nous pouvons aussi utiliser -a possibilité d'archiver le fichier. Cela créera une copie exacte de fichiers et de répertoires, y compris les liens symboliques s'il y en a. Voici un exemple :

$ cp -a directory_1/ /home/pungki/office

La commande ci-dessus copiera un répertoire nommé répertoire_1 dans le dossier /home/pungki/office . Comme vous pouvez le voir, le file_6.txt toujours copié en tant que liens symboliques.

9) Expliquez ce qui est fait

Par défaut, lorsque l'activité de copie est réussie, nous verrons à nouveau une invite de commande. Si vous voulez savoir ce qui se passe lors de la copie du fichier, nous pouvons utiliser -v option.

$ cp -v *.txt /home/pungki/office

Lorsque nous copions tous les fichiers txt du répertoire actuel dans /home/pungki/office/ répertoire, -v l'option montrera ce qui est en train d'être fait. Ces informations supplémentaires nous rendront plus sûrs de l'activité de copie.

10) Copier uniquement lorsque le fichier source est plus récent

Pour ce faire, nous pouvons utiliser -u option. Jetez un oeil à cet exemple ci-dessous.

$ cp -vu *.txt /home/pungki/office

Au début, nous voyons que file_1.txt a 0 octet taille du fichier. Ensuite, nous le modifions à l'aide de vi, ajoutons du contenu et le sauvegardons. Ensuite, nous voyons que la taille du fichier est passée à 36 octets.

Pendant ce temps, dans /home/pungki/office répertoire, nous avons déjà tous Fichiers *.txt. Lorsque nous utilisons -u option, combinée avec -v option pour voir ce qui est fait, la commande cp copiera uniquement un ou plusieurs fichiers plus récents à partir du répertoire de destination. En conséquence, nous voyons que seul file_1.txt est copié dans le répertoire /home/pungki/office .

11) Utiliser le mode interactif

Le mode interactif demandera si le dossier de destination contient déjà le fichier. Pour activer le mode interactif, utilisez -i option.

$ cp -ir directory_1/ /home/pungki/office/

12) Créer une date de sauvegarde de chaque fichier copié

Lorsque le dossier de destination contient déjà le fichier, la commande cp par défaut écrasera le même fichier dans le répertoire de destination. Utilisation de --sauvegarde option, la commande cp fera une sauvegarde de chaque fichier de destination existant. ../office fera référence à /home/pungki/office . Voici un exemple :

$ cp --backup=simple -v *.txt ../office

Comme nous pouvons le voir, --backup=simple L'option créera un fichier de sauvegarde qui marqué par un signe tilde (~) à la fin du fichier. --sauvegarde l'option a un certain contrôle, qui sont :

  • aucun, désactivé : jamais de sauvegardes (même si --backup est donné)
  • numéroté, t : faire des sauvegardes numérotées
  • existant, néant : numérotée si la sauvegarde numérotée existe, simple sinon
  • simple, jamais : faites toujours des sauvegardes simples

13) Copier uniquement les attributs de fichier

La commande cp nous fournit également --attributes-only option. Comme nous pouvons le deviner à partir de son nom, cette option ne copiera qu'un nom de fichier et ses attributs sans copier aucune donnée. Voici un exemple.

$ cp --attributes-only file_6.txt -v ../office

D'après la capture d'écran ci-dessus, le fichier original file_6.txt a 50 octets taille du fichier. Utilisation de --attributs-only option, le fichier copié aura 0 octet taille du fichier. C'est parce que le contenu du fichier n'est pas copié.

14) Forcer la copie

Utilisation de -f L'option forcera l'activité de copie. Si les fichiers de destination ne peuvent pas être ouverts, alors -f va réessayer.

$ cp -f *.txt -v ../office

15) Supprimer la destination avant la copie

Pour ce faire, nous pouvons utiliser --remove-destination option. Cette option est contraste avec l'option -f au dessus de. Si la commande cp trouve le même nom de fichier dans le dossier de destination, la commande cp supprimera d'abord le fichier de destination, puis copiera le nouveau. Voici un exemple.

$ cp --remove-destination *.txt -v ../office

La commande cp est l'une des commandes Linux de base. Pour ceux qui veulent apprendre Linux, il faut connaitre cette commande. Bien sûr, vous pouvez taper man cp ou cp --help depuis votre console pour afficher sa page de manuel afin d'explorer plus de détails.

Lire aussi :

  • Un bref aperçu de 106 commandes Linux avec des exemples

Linux
  1. Comment copier des fichiers et des répertoires sous Linux

  2. Comment compresser des fichiers et des répertoires sous Linux (avec exemples)

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

  4. Comment utiliser la commande Rsync sous Linux ?

  5. Comment copier des fichiers sous Linux et Unix ? 10 exemples de commandes cp

Comment utiliser la commande SCP pour transférer des fichiers

Comment renommer des fichiers et des répertoires dans Ubuntu 20.04

Comment utiliser la commande rsync pour copier des données localement et via SSH

COMMENT UTILISER TAIL COMMAND

Comment utiliser la commande head

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