Unix / Linux - Gestion des répertoires

Dans ce chapitre, nous discuterons en détail de la gestion des répertoires sous Unix.

Un répertoire est un fichier dont le seul travail consiste à stocker les noms de fichiers et les informations associées. Tous les fichiers, qu'ils soient ordinaires, spéciaux ou répertoires, sont contenus dans des répertoires.

Unix utilise une structure hiérarchique pour organiser les fichiers et les répertoires. Cette structure est souvent appelée arborescence de répertoires. L'arbre a un seul nœud racine, le caractère barre oblique (/), et tous les autres répertoires sont contenus en dessous.

Répertoire d'accueil

Le répertoire dans lequel vous vous trouvez lors de votre première connexion est appelé votre répertoire personnel.

Vous ferez une grande partie de votre travail dans votre répertoire personnel et les sous-répertoires que vous allez créer pour organiser vos fichiers.

Vous pouvez aller dans votre répertoire personnel à tout moment en utilisant la commande suivante -

$cd ~
$

Ici ~indique le répertoire de base. Supposons que vous deviez aller dans le répertoire personnel de n'importe quel autre utilisateur, utilisez la commande suivante -

$cd ~username
$

Pour aller dans votre dernier répertoire, vous pouvez utiliser la commande suivante -

$cd -
$

Noms de chemin absolus / relatifs

Les répertoires sont organisés dans une hiérarchie avec la racine (/) en haut. La position de tout fichier dans la hiérarchie est décrite par son chemin.

Les éléments d'un chemin sont séparés par un /. Un chemin d'accès est absolu, s'il est décrit par rapport à root, donc les chemins absolus commencent toujours par un /.

Voici quelques exemples de noms de fichiers absolus.

/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

Un chemin d'accès peut également être relatif à votre répertoire de travail actuel. Les chemins d'accès relatifs ne commencent jamais par /. Par rapport au répertoire personnel de l'utilisateur amrood, certains chemins pourraient ressembler à ceci -

chem/notes
personal/res

Pour déterminer où vous vous trouvez dans la hiérarchie du système de fichiers à tout moment, entrez la commande pwd pour imprimer le répertoire de travail actuel -

$pwd
/user0/home/amrood

$

Liste des répertoires

Pour lister les fichiers dans un répertoire, vous pouvez utiliser la syntaxe suivante -

$ls dirname

Voici l'exemple pour lister tous les fichiers contenus dans /usr/local annuaire -

$ls /usr/local

X11       bin          gimp       jikes       sbin
ace       doc          include    lib         share
atalk     etc          info       man         ami

Création de répertoires

Nous allons maintenant comprendre comment créer des répertoires. Les répertoires sont créés par la commande suivante -

$mkdir dirname

Ici, le répertoire est le chemin absolu ou relatif du répertoire que vous souhaitez créer. Par exemple, la commande -

$mkdir mydir
$

Crée le répertoire mydirdans le répertoire courant. Voici un autre exemple -

$mkdir /tmp/test-dir
$

Cette commande crée le répertoire test-dir dans le /tmpannuaire. lemkdir La commande ne produit aucune sortie si elle réussit à créer le répertoire demandé.

Si vous donnez plus d'un répertoire sur la ligne de commande, mkdircrée chacun des répertoires. Par exemple, -

$mkdir docs pub
$

Crée les répertoires docs et pub sous le répertoire courant.

Création de répertoires parents

Nous allons maintenant comprendre comment créer des répertoires parents. Parfois, lorsque vous souhaitez créer un répertoire, son ou ses répertoires parents peuvent ne pas exister. Dans ce cas,mkdir émet un message d'erreur comme suit -

$mkdir /tmp/amrood/test
mkdir: Failed to make directory "/tmp/amrood/test"; 
No such file or directory
$

Dans de tels cas, vous pouvez spécifier le -p option à la mkdircommander. Il crée tous les répertoires nécessaires pour vous. Par exemple -

$mkdir -p /tmp/amrood/test
$

La commande ci-dessus crée tous les répertoires parents requis.

Suppression de répertoires

Les répertoires peuvent être supprimés à l'aide du rmdir commande comme suit -

$rmdir dirname
$

Note - Pour supprimer un répertoire, assurez-vous qu'il est vide, ce qui signifie qu'il ne devrait y avoir aucun fichier ou sous-répertoire dans ce répertoire.

Vous pouvez supprimer plusieurs répertoires à la fois comme suit -

$rmdir dirname1 dirname2 dirname3
$

La commande ci-dessus supprime les répertoires dirname1, dirname2 et dirname3, s'ils sont vides. lermdir La commande ne produit aucune sortie si elle réussit.

Changer de répertoire

Vous pouvez utiliser le cdcommande pour faire plus que simplement passer à un répertoire personnel. Vous pouvez l'utiliser pour accéder à n'importe quel répertoire en spécifiant un chemin absolu ou relatif valide. La syntaxe est la suivante -

$cd dirname
$

Ici, dirnameest le nom du répertoire vers lequel vous souhaitez changer. Par exemple, la commande -

$cd /usr/local/bin
$

Modifications du répertoire /usr/local/bin. Depuis ce répertoire, vous pouvezcd au répertoire /usr/home/amrood en utilisant le chemin relatif suivant -

$cd ../../home/amrood
$

Renommer les répertoires

le mv (move)La commande peut également être utilisée pour renommer un répertoire. La syntaxe est la suivante -

$mv olddir newdir
$

Vous pouvez renommer un répertoire mydir à yourdir comme suit -

$mv mydir yourdir
$

Les répertoires. (point) et .. (point point)

le filename .(point) représente le répertoire de travail actuel; et lefilename .. (point point) représente le répertoire un niveau au-dessus du répertoire de travail actuel, souvent appelé répertoire parent.

Si nous entrons la commande pour afficher une liste des répertoires / fichiers de travail actuels et utilisons le -a option pour lister tous les fichiers et le -l option pour fournir la liste longue, nous recevrons le résultat suivant.

$ls -la
drwxrwxr-x    4    teacher   class   2048  Jul 16 17.56 .
drwxr-xr-x    60   root              1536  Jul 13 14:18 ..
----------    1    teacher   class   4210  May 1 08:27 .profile
-rwxr-xr-x    1    teacher   class   1948  May 12 13:42 memo
$