La gestion des fichiersAuteur : Julien Gauchet le 29/11/2017 (2 revisions)

Cette page explique comment manipuler les fichiers sous linux, en terme de contenu et de structure

1. Se déplacer dans le système de fichier

1.1. La gestion du répertoire courant

Un shell est toujours associé à un répertoire courant, pour le connaître, il suffit de taper la commande suivante :

pwd
/dev/fs/Z

Pour changer de répertoire courant, on utilise la commande suivante

cd nouveau_repertoire

On peut utiliser des chemins relatifs par rapport au répertoire courant. Pour cela, le répertoire courant peut être désigné par « . » par exemple : ./script.ksh permet d'appeler un script se trouvant dans le répertoire courant sans avoir à taper la totalité du chemin vers ce script.

Pour remonter d'un répertoire par rapport au répertoire courant, on utilise la commande suivante :

cd ..

On peut remonter de deux répertoires de la manière suivante :

cd ../..

2. Visualiser et éditer le système de fichiers

2.1. Lister les fichiers d'un répertoire

Pour lister les fichiers présents dans un répertoire, on utilise la commande ls :

ls /repertoire
fichier1.txt fichier2.txt fichier3.txt fichier4.txt rep

La commande ls sans argument liste les fichiers du répertoire courant.

2.2. Créer un fichier

Pour créer un fichier, on utilise :

> /chemin/fichier.txt

Il existe également une commande touch qui permet de créer un fichier mais son utilisation est déconseillée.

2.3. Déplacer un fichier

Pour déplacer un fichier, on utilise la commande mv :

mv fichier destination

Par exemple :

mv fichier1.txt ../fic1.txt

fichier1.txt est déplacé dans le répertoire supérieur et est renommé fic1.txt.

Si on ne souhaite pas renommer le fichier, on peut utiliser la commande sous cette forme :

mv fichier1.txt ../

2.4. Supprimer un fichier

Pour supprimer un fichier, on utilise la commande

rm fichier

Pour supprimer un dossier, on utilise l'option -d qui signifie qu'on supprime le dossier et -r qui permet de supprimer le contenu du dossier également :

rm -d -r dossier

Pour ne pas demander de confirmation et ne pas afficher de message lorsque le fichier n'existe pas, on utilise l'option -f :

rm -f fichier

3. Manipuler le contenu des fichiers

3.1. Afficher un fichier

Pour afficher un fichier, on utilise la commande suivante cat :

cat fichier.txt
ligne 1 du fichier
ligne 2

On peut n'afficher que les premières lignes d'un fichier à l'aide de la commande head. Par exemple, la commande suivante n'affiche que les 20 premières lignes du fichier :

head -2 < fichier.txt
ligne 1 du fichier
ligne 2

Pour n'afficher que les dernières lignes d'un fichier, on utilise la commande

tail -1 < fichier.txt
ligne 2

Pour afficher les lignes de 10 à 20 d'un fichier :

head -20 < fichier.txt | tail -10

3.2. Copier un fichier

Pour copier des fichiers, on utilise la commande cp :

cp fichier1 fichier2

4. Gestion des droits

Les droits d'accès à un fichier sont appliqués à trois entités :

  • le user (u)
  • le groupe (g)
  • les autres utilisateurs (o)

Il existe trois droits sur un fichier :

  • Lecture (r)
  • Écriture (w)
  • Exécution (x)

Pour connaître les droits associés à un fichier, on utilise la commande ls -l :

ls -l
total 0
-rwx------+ 1 +Admin Utilis. domaine 0 Sep 26 10:27 fic1
-rwx------+ 1 +Admin Utilis. domaine 0 Sep 26 10:27 fic2
-rwx------+ 1 +Admin Utilis. domaine 0 Sep 26 10:27 fic3
-rwx------+ 1 +Admin Utilis. domaine 0 Sep 26 10:27 fic4
drwx------+ 1 +Admin Utilis. domaine 0 Sep 26 10:27 rep
Résultats de ls -l expliqués

Pour modifier les droits sur un fichier, on utilise la commande chmod :

chmod rwx /fichier.txt

On peut également utiliser chmod de la façon suivante pour ajouter le droit d'exécution du fichier pour l'utilisateur :

chmod u+x /fichier.txt

Révoque le droit de modification pour l'utilisateur :

chmod u-w /fichier.txt

La commande chown permet de changer le propriétaire du fichier, la commande chgrp permet de changer le groupe.

5. Quelques outils

5.1. Manipuler les noms de fichiers

La commande basename extraite le nom du fichier dans une arborescence :

basename /tmp/dossier/fichier.txt
fichier.txt

La commande dirname récupère le dossier uniquement :

dirname /tmp/dossier/fichier.txt
/tmp/dossier

5.2. Rechercher des fichiers

La commande find permet de rechercher des fichiers. Plusieurs critères de recherche sont possibles : Une recherche sur le nom du fichier. Les caractères génériques peuvent être utilisés : * signifie plusieurs caractères quelconques, ? signifie un caractère quelconque.

find /repertoire -name 'fichier*.*'
/repertoire/fichier1.txt
/repertoire/fichier2.txt
/repertoire/sousRepertoire/fichier3.txt

On peut ignorer la casse avec l'option iname :

find /repertoire -iname 'fichier*.*'

On peut également rechercher des fichiers en fonction de leur taille, de leur date de modification, etc. Pour plus d'informations sur cette commande, consulter le manuel.