GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exclure des répertoires spécifiques de la copie sous Linux

Il y a quelque temps, nous avons expliqué comment exclure certaines tailles de fichiers de la copie en utilisant rsync dans les systèmes de type Unix. Cette méthode nous a aidés à exclure les fichiers de grande taille ou les fichiers moins importants afin de terminer le processus de copie le plus rapidement possible. Ainsi, nous pouvons copier les fichiers restants plus tard lorsque nous avons du temps libre. Aujourd'hui, dans ce bref guide, nous verrons comment exclure des répertoires spécifiques de la copie à l'aide de Rsync et cp commandes sous Linux.

Exclure des répertoires spécifiques de la copie sous Linux

Il pourrait y avoir plusieurs façons de faire cette tâche. Je suis conscient de suivre deux méthodes.

Méthode 1 : utilisation de rsync commande

Comme vous le savez peut-être déjà, Rsync est un outil rapide et polyvalent pour copier des fichiers et des dossiers localement, ou vers/depuis un autre hôte via n'importe quel shell distant, ou vers/depuis un démon rsync distant. Rsync a beaucoup d'options utiles. L'une des options utiles est --exclude . Utiliser exclure option, nous pouvons exclure certains fichiers/répertoires de la copie. Voyons comment faire avec un exemple.

Disons que vous avez un dossier appelé ostechnix . A l'intérieur du répertoire ostechnix, il y a trois sous-répertoires à savoir dir1rép2 , et dir3 .

$ ls ostechnix/
dir1 dir2 dir3

Vous voulez copier dir1 et dir3 à un emplacement différent, mais pas dir2 . Comment? C'est ici que rsync vient en aide.

Pour exclure un répertoire spécifique de la copie à l'aide de la commande rsync, exécutez simplement :

$ rsync -av --progress ostechnix/ backup/ --exclude dir2

Exemple de sortie :

sending incremental file list
./
dir1/
dir1/file1.pdf
 6,152,611 100% 58.36MB/s 0:00:00 (xfr#1, to-chk=7/11)
dir1/file2
 2,597,261 100% 14.83MB/s 0:00:00 (xfr#2, to-chk=6/11)
dir1/file3.doc
 88,143 100% 470.37kB/s 0:00:00 (xfr#3, to-chk=5/11)
dir1/file4.txt
 66,374 100% 330.71kB/s 0:00:00 (xfr#4, to-chk=4/11)
dir3/
dir3/file1.pdf
 6,152,611 100% 18.39MB/s 0:00:00 (xfr#5, to-chk=3/11)
dir3/file2
 2,597,261 100% 6.68MB/s 0:00:00 (xfr#6, to-chk=2/11)
dir3/file3.doc
 88,143 100% 224.16kB/s 0:00:00 (xfr#7, to-chk=1/11)
dir3/file4.txt
 66,374 100% 164.10kB/s 0:00:00 (xfr#8, to-chk=0/11)

sent 17,813,759 bytes received 187 bytes 11,875,964.00 bytes/sec
total size is 17,808,778 speedup is 1.00

La commande ci-dessus copiera tout le contenu du dossier ostechnix dans un dossier nommé sauvegarde , et cela exclura le répertoire dir2 de la copie.

Alternativement, vous pouvez utiliser la même commande que ci-dessous.

$ rsync -av --progress --exclude="folder_to_exclude" source_dirctory dest_directory

Exemple :

$ rsync -av --progress --exclude="dir2" ostechnix/ backup/

C'est en fait une bonne idée d'omettre ou d'exclure certains répertoires volumineux ou moins importants de la copie lors de la sauvegarde de votre système à l'aide de rsync afin de gagner du temps.

Pour plus de détails, consultez les pages de manuel.

$ man rsync

Lisez également :

  • Comment transférer rapidement des fichiers volumineux sur le réseau sous Linux et Unix
  • Comment trouver la taille d'un répertoire sous Linux à partir de la ligne de commande

Méthode 2 - Utilisation de cp commande

Nous pouvons également utiliser cp commande pour copier des dossiers d'un emplacement à un autre à l'exclusion de répertoires spécifiques.

Allez dans votre répertoire source, c'est-à-dire ostechnix dans notre cas.

$ cd ostechnix/

Et lancez la commande suivante :

$ cp -r `ls -A | grep -v "dir2"` /home/sk/backup/

La commande ci-dessus copiera tout le contenu du dossier actuel ostechnix sauf le sous-répertoire dir2 et les enregistre dans /home/sk/backup/ répertoire.

Encore plus simple, nous pouvons le faire comme suit.

$ cp -r !(dir2) /home/sk/backup/

Pour plus de détails, consultez les pages de manuel.

$ man cp

Linux
  1. Comment effacer une commande spécifique de l'historique Bash sous Linux

  2. Comment exclure certaines tailles de fichiers de la copie sous Linux

  3. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  4. Comment puis-je exclure des répertoires de grep -R ?

  5. Comment puis-je trouver un fichier spécifique à partir d'un terminal Linux ?

Comment utiliser rsync pour exclure des fichiers et des répertoires dans le transfert de données

Comment exclure des fichiers et des répertoires avec Rsync

Comment renommer des répertoires sous Linux

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

Comment naviguer plus rapidement dans les répertoires sous Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux