Dissocier la commande sous Linux

Comment supprimer des fichiers dans le terminal Linux ? Vous utilisez la commande rm.

C’est ce que les gens font habituellement. Mais une autre commande peut être utilisée pour supprimer des fichiers et des liens sous Linux.

La commande s’appelle unlink et bien que cela puisse sembler ne servir qu’à supprimer des liens sous Linux, il peut également supprimer des fichiers.

Après tout, le processus de suppression sous Linux consiste essentiellement à dissocier. Lorsque vous supprimez un fichier, le noyau Linux trouve qu’il correspond au numéro d’inode X. Il supprimera l’entrée de fichier de la liste de son répertoire et réduira le nombre de liens de l’inode X de 1. Maintenant que le nombre de liens de l’inode X est 0, le noyau sait qu’il n’y a personne qui se lie à cet inode, il est donc prudent de supprimer l’inode et de supprimer le bloc de données qui lui est associé.

Voyons comment utiliser la commande unlink.

La commande unlink est utilisée pour supprimer des fichiers et des liens. Vous pouvez l’utiliser pour supprimer les liens symboliques et physiques.

C’est l’une des commandes les plus simples qui n’ont pas d’autres options que --help et --version.

Pour supprimer un fichier avec unlink, utilisez-le comme ceci :

unlink filename

Pour supprimer un lien :

unlink link_name

Vous ne verrez aucune sortie lors de la suppression réussie d’un fichier ou d’un lien.

En gros, c’est à peu près tout pour la commande unlink. Il ne peut rien faire d’autre.

Alors que la commande rm peut supprimer plusieurs fichiers à la fois, unlink ne peut supprimer qu’un seul fichier à la fois. Vous ne pouvez pas lui donner plus d’un fichier à la fois. Vous ne pouvez pas non plus utiliser de modèles de globalisation.

Si vous essayez quelque chose comme ça, cela génère une erreur et ne supprime aucun fichier.

[email protected]:~/test$ unlink *.txt
unlink: extra operand ‘file2.txt’
Try 'unlink --help' for more information.

Il en va de même pour la suppression de plusieurs liens à la fois.

L’implémentation GNU de la commande unlink ne peut pas supprimer un répertoire. Il génère une erreur si vous essayez de supprimer un dossier.

[email protected]:~$ unlink new_dir
unlink: cannot unlink 'new_dir': Is a directory

La commande unlink utilise la commande système unlink tandis que la commande rm utilise l’appel système unlinkat. Les deux appels système sont presque identiques.

Il y a quelques différences évidentes entre les deux commandes et vous pouvez déjà le voir.

La commande unlink ne gère qu’un seul fichier ou lien à la fois. La commande rm peut en gérer plusieurs à la fois.

La commande rm peut supprimer des répertoires avec l’option récursive. La commande unlink ne peut pas supprimer un répertoire.

La commande rm effectue un contrôle de sécurité. Si vous n’avez pas la permission d’écrire sur un fichier, il vous demandera de le confirmer interactivement ou d’utiliser l’option forcer -f. Avec unlink, il n’y a pas de contrôles de sécurité. Cela supprimera le fichier protégé en écriture.

Unlink ne fait pas de vérification de sécurité contrairement à la commande rm

Unlink n’a pas de fonctionnalités ou d’options supplémentaires, contrairement à la commande rm.

Il pourrait y avoir quelques cas d’utilisation où vous préféreriez utiliser la commande unlink plutôt que rm. Imaginez que vous vouliez “forcer la suppression” d’un fichier indépendamment de la protection en écriture, mais que vous vouliez que le script échoue si le fichier n’existe pas. Le rm -f n’affichera aucune erreur si le fichier n’existe pas, mais unlink générera une erreur.

5/5 - (1 vote)
SAKHRI Mohamed
SAKHRI Mohamed

Le blog d'un passionné d'informatique qui partage des actualités, des tutoriels, des astuces, des outils en ligne et des logiciels pour Windows, macOS, Linux, Web designer et jeux vidéo.

Publications: 3747

Laisser un commentaire

Your email address will not be published.