Comment copier des fichiers à l’aide de la commande «install» sous Linux

install est une commande polyvalente de copie de fichiers sous Linux et macOS. Il est parfait pour les utilisateurs expérimentés à la recherche d’efficacité. Lisez cet article pour découvrir comment travailler plus intelligemment, pas plus dur.

Attendez – Ce n’est pas pour installer le logiciel?

La commande install peut avoir le nom le plus trompeur de toutes les commandes Linux. Il n’installe en fait aucun logiciel. Si vous essayez d’installer un progiciel à partir de la ligne de commande dans Ubuntu ou dans une autre distribution basée sur Debian, utilisez la commande apt-get. Sur les autres distributions Linux, utilisez plutôt l’outil de gestion de paquets de votre distribution Linux – par exemple, dnf sur Fedora ou zypper sur openSUSE.

Alors, que fait l’installation?

En un mot, l’installation combine des éléments du cp (copie), chown (changer de propriétaire), chmod (changer de mode), mkdir (créer un répertoire) et strip (symboles de bande) commandes. Il vous permet d’utiliser les fonctions de tous ceux-ci en une seule action.

La commande install peut:

Copiez des fichiers comme la commande cp.
Choisissez d’écraser les fichiers existants.
Créez le répertoire cible s’il n’existe pas, comme mkdir.
Définissez les indicateurs d’autorisation utilisateur des fichiers, tout comme la commande chmod.
Définissez le propriétaire des fichiers, tout comme la commande chown.
Supprimez les bagages non essentiels des fichiers exécutables, tout comme la commande strip.

Malgré toutes ces fonctionnalités, la commande d’installation n’a pas trop de nombreuses options à combattre.

installer la page de manuel

Quand l’utiliseriez-vous

La commande install ne sera probablement pas utilisée tous les jours. C’est utile, mais seulement pour certaines situations. Un scénario où l’installation prend tout son sens est le développement de logiciels. Disons que vous programmez un nouvel utilitaire. Vous devrez effectuer des tests en dehors de l’environnement de développement. Pour ce faire, vous devez copier les nouveaux fichiers programme dans un répertoire de test. Le répertoire de test doit peut-être être créé et vous devez définir les autorisations et la propriété appropriées pour les fichiers.

Parce que le développement est une activité itérative, vous pouvez finir par faire cette séquence d’actions de nombreuses fois. La commande install fait tout le gros du travail pour vous. Enfin, lorsque votre nouvel utilitaire est prêt à être déployé, vous pouvez utiliser install pour le copier avec les autorisations appropriées vers son emplacement de travail final.

  Comment utiliser Windows 10 Cloud Recovery pour réinitialiser le PC

Un exemple

Un programmeur travaille sur un tel nouvel utilitaire, appelé ana. Il se compose d’un fichier binaire exécutable et d’une base de données. Après le test, il doit être copié dans / usr / local / bin pour le rendre disponible pour tous les utilisateurs du système Linux. Vous devrez remplacer les noms de fichiers et les chemins de répertoire dans notre exemple par les fichiers et les chemins que vous utilisez sur votre ordinateur lorsque vous utilisez install.

Jusqu’à ce qu’il soit prêt à être publié, il sera testé dans un répertoire appelé ~ / test / ana. Les membres du groupe geek auront des autorisations de lecture et d’exécution. Les autres utilisateurs auront également des autorisations de lecture et d’exécution. La commande install utilise la même représentation numérique pour les autorisations que chmod. Notre programmeur a décidé que les autorisations doivent être définies sur:

Propriétaire: lecture, écriture et exécution.
Groupe: lecture et exécution.
Autres: Exécuter uniquement.

Comment utiliser la commande d’installation

Le répertoire de travail de notre programmeur fictif est ~ / work. Il a écrit le programme, l’a compilé et produit un binaire appelé ana. Il a déjà créé le fichier de base de données avec lequel ana travaille, Words.db. Les deux fichiers sont donc prêts à être testés. Jetons un coup d’œil à eux:

ls -l ana Words.db

L’utilitaire ana qu’il vient d’écrire crée des anagrammes à partir d’une phrase fournie sur la ligne de commande. Les tests de vérification sont assez simples.

test de l'utilitaire ana dans le répertoire de travail

Notre programmeur a invoqué ana avec l’expression «biscuit» et tout semble bien. Il souhaite maintenant copier ces deux fichiers dans le répertoire ~ / test / ana pour voir si le nouvel utilitaire fonctionne correctement en dehors de l’environnement de développement. Il émet la commande suivante:

install -D -v ana Words.db -t ~/test/ana

Installer la commande dans / test / ana

Les options utilisées sur la ligne de commande étaient:

D: Créez des répertoires, y compris des répertoires parents, si nécessaire.
v: détaillé, listez chaque répertoire tel qu’il est créé et chaque copie de fichier telle qu’elle est exécutée.
t: répertoire cible.

Nous pouvons voir que l’installation crée le répertoire ~ / test, puis crée le répertoire ~ / test / ana. Les fichiers sont répertoriés un par un lorsqu’ils sont copiés dans le répertoire cible.

La liste des fichiers dans ~ / test / ana confirme qu’ils ont été copiés correctement.

ls -l

ls dans le répertoire / test / ana

L’étape suivante consiste à tester l’utilitaire ana en l’appelant dans le répertoire ~ / test / ana.

test de l'utilitaire ana dans le répertoire / test / ana

L’utilitaire fonctionne comme prévu, ce qui est excellent. Cependant, les autorisations ne sont pas correctes. La condition est de définir les membres du groupe geek pour avoir des autorisations de lecture et d’exécution, et pour les autres utilisateurs d’avoir uniquement l’exécution.

  Comment désactiver des sections d'une vidéo sous Windows 10

Nous pouvons résoudre ces deux problèmes tout simplement avec la commande suivante. Notez l’utilisation de sudo pour exécuter la commande avec les autorisations root. Les options -o et -g et l’exigent. On nous demandera notre mot de passe lorsque nous émettrons la commande.

sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

commande d'installation avec options de sauvegarde et paramètres de prémissions

L’option -b (sauvegarde) crée des sauvegardes des fichiers avant qu’ils ne soient écrasés.
L’option -S (suffixe) définit le suffixe des fichiers de sauvegarde. Si vous ne fournissez pas de suffixe, un ~ (tilde) est utilisé. Nous demandons à install d’utiliser le suffixe .bak.
Nous définissons le propriétaire du fichier comme dave à l’aide de l’option -o (owner).
L’option -g (groupe) nécessite le nom d’un groupe. Cela devient le groupe propriétaire des fichiers. Le groupe que nous allons utiliser s’appelle geek.
L’option -m (mode) définit les modes de fichier pour les fichiers, en utilisant la syntaxe numérique standard chmod.

Nous n’avons plus besoin d’utiliser l’option -D (créer des répertoires), car nous savons que le répertoire de test existe déjà. Nous avons également omis l’option -v (verbose). La liste des fichiers dans notre répertoire ~ / test / ana nous montre les détails du fichier:

ls -l

ls dans le répertoire / test / ana

Cela confirme que toutes nos exigences ont été satisfaites.

Les fichiers ont été copiés dans le répertoire de test.
Les autorisations ont été définies correctement.
Dave est le propriétaire des fichiers.
Le groupe geek est le groupe propriétaire des deux fichiers.
Des copies de sauvegarde ont été faites de chaque fichier, appelé ana.bak et Words.db.bak.

Tout cela a été réalisé grâce à l’utilisation d’une seule commande. Soigné.

Notre programmeur apporte quelques modifications finales à l’utilitaire et se recompile. Les fichiers modifiés doivent être copiés dans le répertoire ~ / test / ana depuis le répertoire ~ / work. Nous pouvons le faire en utilisant l’option -C (comparer). Si le fichier source et le fichier cible sont identiques, le fichier source n’est pas copié.

sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana

commande d'installation avec l'option de comparaison -C

La liste des fichiers dans le répertoire cible nous montre que la taille du fichier ana a changé. Il est plus grand que le fichier ana.bak. L’horodatage sur ana a également changé. Ces modifications sont dues au fait que la nouvelle version du fichier a été copiée ici.

ls -l

ls dans / test / ana avec l'utilitaire test fo ana

La taille et l’horodatage du fichier Words.db n’ont pas changé. Aucune modification n’a été apportée au fichier Words.db, il n’a donc pas été copié. Sur un projet avec de nombreux fichiers, l’option -C (comparer) peut économiser beaucoup de temps et réduire le taux de désabonnement du disque dur, en ne copiant que les fichiers qui ont été modifiés.

  Comment ajouter un message Skype à vos favoris

Le programmeur a de nouveau testé que l’utilitaire ana continue de fonctionner.

Il est temps d’utiliser install pour copier les fichiers dans le répertoire / usr / local / bin. Cela rendra le nouvel utilitaire disponible pour tous les utilisateurs de cet ordinateur Linux. Nous savons que / usr / local / bin existe, nous n’avons donc pas besoin de créer ce répertoire. Nous pouvons utiliser une version modifiée de notre dernière commande.

Nous avons changé le répertoire cible en / usr / local / bin. Nous avons supprimé l’option -C (comparer) car il n’y a pas encore de copies de ces fichiers dans le répertoire cible, il n’y a donc rien à comparer. De même, il n’y a rien à sauvegarder, nous pouvons donc supprimer l’option -b (sauvegarde) et l’option -S (suffixe).

sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin

installer la copie de fichiers dans / usr / local / bin

Nous pouvons lister que les fichiers sont arrivés dans / usr / local / bin:

ls -l

ls de / usr / local / bin

Et comme test final, changeons de répertoire en notre répertoire personnel et voyons si nous pouvons appeler notre nouvel utilitaire à partir de là.

test de l'utilitaire ana

Notez que nous n’avons pas besoin de faire précéder la commande ana de ./, ce qui signifie qu’elle s’exécute à partir de / usr / local / bin. Mission accomplie.

Nous avons mentionné que l’installation peut supprimer les tables de symboles redondantes et autres bagages du fichier binaire, pour le réduire en taille. Faisons cela maintenant. Notez que la commande ci-dessous n’inclut pas Words.db. C’est parce que Words.db est un fichier de base de données, pas un exécutable binaire. Pour copier et réduire le fichier binaire ana, nous pouvons utiliser la commande suivante. Nous avons ajouté l’option -s (rétrécir) avec un «s» minuscule. Nous avons rajouté l’option -b (sauvegarde) et l’option -S (suffixe), avec un «S» en majuscule

sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin

option d'installation avec l'option -s strip

La liste des fichiers dans / usr / local / bin nous permet de comparer la taille du fichier ana avec sa version de sauvegarde. Le fichier ana a été réduit à près de 60% de sa taille précédente.

ls -l /usr/local/bin

ls dans le répertoire de travail

En résumé

La commande d’installation s’adresse à une jolie utilisation de niche. Pour de nombreuses personnes, il ne sera pas utilisé jour après jour, ou peut-être d’un mois à l’autre. Malgré cela, la commande install est un bon outil à connaître et à avoir dans votre arsenal d’astuces. Pour les occasions où vous en avez besoin, il récompense votre courbe d’apprentissage avec des gains d’efficacité, de simplicité et simplement moins de frappes.