Copier la liste des fichiers à l'aide du script bash

Copier la liste des fichiers à l'aide du script bash
Bash (Bourne Again Shell) est le type de shell qui est pour exécuter des commandes et des scripts. Bash était une version développée du SH Shell. Bash Script est un fichier où plusieurs commandes de shell sont scénarisées pour effectuer une tâche particulière. Dans cet article, nous verrons comment nous pouvons copier plusieurs fichiers à l'aide d'un script bash. Pour cet article, j'utilise Ubuntu 20.04 pour démontrer l'exemple.

Remarque: - $ L'utilisateur imprimera les noms d'utilisateur des utilisateurs actuels.

Si vous êtes curieux de savoir quelle version de Bash Shell est installée dans le système, nous pouvons le vérifier en utilisant la commande suivante.

$ bash --version

Sortie de version bash.

Création et exécution du script bash

Commençons par créer un fichier simple en utilisant n'importe quel éditeur de votre choix. Pour moi, l'éditeur VI est plus confortable. Pour rendre le fichier exécutable, nous devons ajouter Shebang (!#) et l'emplacement de l'interprète bash au début du script. J'ai créé un texte.Fichier TXT et l'ajoutez à Bash_demo Dir dans mon Dir à domicile qui contient du texte à des fins de démonstration.

$ touch bash_demo.shot
$ vi bash_demo.shot

Ajoutez les lignes suivantes dans votre éditeur de texte pour un exemple de démo après avoir créé un fichier; Si vous ne l'avez pas fait, l'éditeur créera un nouveau fichier sur l'écriture et quittera.

#!/ bac / bash
texte CP.txt / tmp /
Echo «Fichier copié."

Nous pouvons exécuter le script en utilisant ./ Avant le fichier de script, qui détermine le fichier DIR actuel.

$ ./ bash_demo.shot

Lorsque nous exécutons le script, l'erreur suivante sera lancée dans notre terminal.

Exécution initiale du fichier bash.

Lorsque nous créons un fichier par défaut, l'utilisateur n'a pas d'autorisation d'exécution pour le fichier. Pour fournir une autorisation d'exécution à l'utilisateur, la commande suivante doit être exécutée.

$ chmod + x bash_demo.shot

Sortie après l'autorisation accordée.

Copiez uniquement les fichiers d'un répertoire spécifique

Pour récupérer tous les fichiers et Dir à partir d'un chemin spécifique, nous utiliserons pour Loop dans le script, puis filtrez le seul fichier en utilisant la condition IF. Dans l'exemple ci-dessous, nous exécutons la commande CP exécutée uniquement si l'itérateur était un fichier qui est déterminé -f indicateur.

#!/ bac / bash
dpath = / var / log / nginx / *
pour le fichier dans $ dpath
faire
Si [[-f $ file]]
alors
CP $ fichier / home / $ utilisateur /
autre
Echo «Il n'y a pas de fichiers dans le chemin donné."
Fi
fait

Copiez tous les fichiers d'extensions spécifiques

Dans cet exemple, nous copierons tous les fichiers avec le .extension du journal. Nous devons ajouter *.se connecter au chemin afin de parcourir le seul fichier avec .Extension du journal pour la boucle uniquement.

#!/ bac / bash
pour le fichier dans / var / log / nginx / *.enregistrer
faire
CP $ fichier / home / $ utilisateur /
fait

Copiez tous les fichiers, y compris le répertoire

Dans cet exemple, nous copierons tous les fichiers, y compris les répertoires, récursivement. Pour cela, nous devons simplement ajouter la commande -r CP où -r détermine la récupération récursive du répertoire.

#!/ bac / bash
pour le fichier dans / var / log / *
faire
cp -r $ fichier / home / $ user /
fait

Copier les fichiers à partir du chemin spécifié par l'utilisateur

Dans cet exemple, nous copierons les fichiers à partir de DIR spécifié par l'utilisateur. Pour ce faire, nous utiliserons la commande de lecture pour demander le chemin d'accès à l'utilisateur, puis vérifiez si l'utilisateur fournit le chemin d'accès à DIR ou non, ce qui est effectué par l'indicateur -D dans la condition. Après avoir vérifié DIR, nous utiliserons une boucle pour itérer tous les fichiers et DIR dans le chemin donné, puis filtrez à nouveau les seuls fichiers en utilisant la condition IF. Si la condition correspond, la commande CP suivante sera exécutée.

#!/ bac / bash
Echo «Veuillez fournir un chemin vers DIR."
le chemin de lecture
Si [[-d $ path]]
alors
pour le fichier dans $ PATH / *
faire
Si [[-f $ file]]
alors
CP $ fichier / home / $ utilisateur /
autre
Echo «Il n'y a pas de fichiers dans le chemin donné."
Fi
fait
autre
Echo «Le chemin vers DIR est requis»
Fi

Dans mon Dir à domicile, j'ai les fichiers et Dir suivants.

Sortie lors de la fourniture du chemin vers un fichier.

Sortie lors de la fourniture du chemin d'emplacement DIR.

Après avoir exécuté le fichier de script, nous pouvons vérifier la sortie dans le Dir prédéfini dans le script. Dans mon cas, j'ai copié le fichier dans mon dirt à domicile, et ce qui suit est le résultat.

Conclusion

Dans cet article, nous apprenons comment copier des fichiers à l'aide de scripts bash. Nous pouvons utiliser de nombreuses autres opérations comme une boucle, si-else, etc. Les scripts de bash sont plus efficaces lorsque vous travaillez avec plusieurs commandes pour effectuer des tâches spécifiques. J'espère que vous aimez cet article sur la copie de fichiers à l'aide d'un script bash.