• Aucun résultat trouvé

Commandes de manipulation de fichiers

2.2 Commandes de manipulation de fichiers

2.2.1 Attributs d’un fichier

Par d´efinition, un fichier est une suite d’octets poss´edant les attributs sui-vants :

– un type,

– un masque de protection,

– un nombre de liens avec d’autres fichiers, – un propri´etaire et groupe,

– une taille,

– une date de cr´eation et de derni`ere modification, – un nom.

Les diff´erents types de fichiers sont :

type code

standard

-r´epertoire d

lien symbolique l

fichier sp´ecial mode block b fichier sp´ecial mode caract`ere c fichier sp´ecial mode r´eseau n

pipe nomm´e p

Le type ”lien symbolique” correspond `a un fichier sp´ecial pointant physique-ment sur un autre.

Les types ”fichier sp´ecial mode block” et ”fichier sp´ecial mode caract`ere”

servent `a communiquer avec les p´eriph´eriques (disques, terminaux, etc.).

Le type ”fichier sp´ecial mode r´eseau” sert de canal de communication entre processes sur diff´erentes machines.

Le type ”pipe nomm´e” sert de canal de communication entre diff´erents pro-cesses sur une mˆeme machine.

2.2.2 Affichage du contenu d’un fichier - Commandes cat et more

Syntaxe :

cat fichier...

more fichier...

La commandecatconcat`ene le contenu des fichiers en arguments et affiche le contenu sur la sortie standard.

La commande more visualise le contenu des fichiers page ´ecran par page

´ecran. Pour visualiser la page suivante, il suffit de frapper sur space , ou de frapper sur return afin de visualiser une ligne suppl´ementaire. Pour terminer la visualisation avant la fin du fichier, taper sur la touche ”Q” ou ”q”. D’autres commandes sont disponibles, pour cela taper sur la touche ”h” ou ”H” lorsque more a termin´e d’afficher une page ´ecran.

S.Baudry, Introduction `a Unix– v4.0 17

Chapitre 2. CommandesUnix

Unix OpenVms MS-DOS

cat type TYPE

more type/page TYPE ... | MORE

Tab.2.5 – ´Equivalence entre catet moreet d’autres syst`emes

Le tableau 2.5 montre l’´equivalence entre les commandes cat et more et d’autres syst`emes (OpenVmsetMS-DOS).

2.2.3 Manipulation de fichiers - Commandes cp, mv et ln

D´efinition :

cp copie les fichiers.

mv renomme les fichiers et r´epertoires et/ou d´eplace les fichiers.

ln cr´ee un lien sur un fichier ou un r´epertoire.

Syntaxe :

cp [-i] fichier-source· · ·destination mv [-i] fichier-source· · ·destination ln [-s] fichier-source lien-destination

Lorsque le commande ”cp” ne poss`ede que deux (”cp fichier1 fichier2”), elle effectue une copie du fichier source vers le fichier destination. Si celui-ci exis-tait d´ej`a il est supprim´e pour ˆetre remplacer par le nouveau.

Lorsque la commande ”cp” poss`ede plus de deux arguments (plusieurs fi-chiers source), la destination est obligatoirement un r´epertoire (”cp fichier1 fichier2 repertoire”). Dans ce cas, elle duplique ces fichiers dans le r´epertoire sp´ecifi´e. S’il en existait d´ej`a sous le mˆeme nom , ils sont supprim´es pour ˆetre remplac´e par les copies.

La commande ”mv” r´eagit de fa¸con similaire :

– si elle ne poss`ede que deux arguments, elle renomme le fichier source sous le nouveau nom,

– si elle poss`ede plusieurs arguments, la destination est obligatoirement un r´epertoire. Dans ce cas, elle d´eplace les fichiers sources dans le r´epertoire sp´ecifi´e.

De mˆeme, si des fichiers existaient d´ej`a sous le mˆeme nom, ils seront sup-prim´es. Dans le cas particulier o`u la commande ”mv” ne poss`ede que deux ar-guments et que la destination est un nom de r´epertoire, le fichier source est d´eplac´e `a ce nouveau point de l’arborescence.

Les fichiers source de la commande ”cp” ne peuvent pas ˆetre des r´epertoires.

Les fichiers source de la commande ”mv” peuvent ˆetre de n’importe quel type.

La commande ”ln” autorise l’acc`es `a un fichier via plusieurs noms, ce sont des cr´eations de liens entre fichiers. La syntaxe est :

ln fichier1 fichier2

– fichier1 qui existe d´ej`a, va pouvoir ˆetre acc´ed´e via le nouveau nom fichier2.

2.2. Commandes de manipulation de fichiers – fichier2est alors li´e avec fichier1.

On distingue deux types de liens : les liens symboliques et les liens logiques.

– Dans le cas du lien symbolique,fichier2(fichier lien) pointe surfichier1 (fichier source) permettant d’acc´eder aux informations sur le disque. Par cons´equent, sifichier1est effac´e, le contenu est perdu etfichier2pointe sur quelque chose d’inexistant.L’information est donc perdue.

– Dans le cas du lien logique, fichier1 (fichier source) et fichier2 (fi-chier lien) pointent directement sur les donn´ees r´esidant sur le disque. Par cons´equent,sifichier1 est effac´e,le contenu n’est pas perdu et est toujours accessible parfichier2.

La figure 2.2 montre les diff´erences entre les liens symboliques et les liens logiques vis `a vis de leur liaisons avec les informations sur le syst`eme de fichiers.

Fig.2.2 – Diff´erence entre les liens symboliques et les liens logiques Remarque 2.2 :

Deux ou plusieurs fichiers li´es par un lien logique doivent r´esider sur le mˆeme syst`eme de fichiers.

2.2.3.1 Visualisation du nombre de liens avec la commandels Exemple 2.4 :

Si l’on prend l’exemple des commandes suivantes :

% ls -l

arthur lancelot merlin

% ln -s lancelot dulac

% ln merlin enchanteur

% ls -l

-rw-r--r-- 1 schmoll nobody 37 Jul 25 12:00 arthur

lrw-r--r-- 1 schmoll nobody 37 Jul 25 12:03 dulac -> lancelot -rwxr-xr-x 2 schmoll nobody 37 Jul 25 12:01 enchanteur

-rw-r--r-- 1 schmoll nobody 37 Jul 25 12:02 lancelot

S.Baudry, Introduction `a Unix– v4.0 19

Chapitre 2. CommandesUnix

-rwxr-xr-x 2 schmoll nobody 37 Jul 25 12:01 merlin donc

– dulac est un lien symbolique surlancelot,

– enchanteur est un lien logique vers les mˆemes informations que celles point´ees par le fichier merlin.

On remarque que le fichierdulacest de type ”lien” et pointe vers le fichier lancelot. Le nombre de liens pour dulacest1(un lien vers lancelot).

En conclusion, pour les liens symboliques :

L’information sur le disque est acc´ed´ee uniquement par le fichier

”lancelot”.

Lorsqu’on acc`ede au fichier ”dulac”, le syst`eme, renvoie l’identifiant du fichier ”lancelot”. Par cons´equent, si le fichier ”lancelot” est d´etruit, ”dulac” perdra les r´ef´erences aux donn´ees.

En conclusion, pour les liens logiques :

Par contre, les types des fichiers ”merlin” et ”enchanteur” corres-pondent `a un ”fichier r´egulier” ou ”standard”. De plus, la commande

”ls -l” indique deux liens. En effet, les secteurs sur le disque physique correspondent `a deux noms diff´erents (fichiers merlin et enchanteur).

L’information ne r´eside q’une seule fois sur le disque mais elle peut ˆ

etre acc´ed´ee par deux noms de fichiers diff´erents. Par cons´equent, si le fichier ”merlin” est d´etruit, le syst`eme a toujours acc`es aux donn´ees via le fichier ”enchanteur”.

Le seul moyen de connaˆıtre les liaisons entre deux liens logiques est de connaˆıtre l’identifiant sur le disque (”i-node”) et de rechercher les fichiers le r´ef´eren¸cant.

Le tableau 2.6 montre les correspondances des commandescp,mvetlnentre les syst`emes d’exploitationsUnix, OpenVmset MS-DOS.

Unix OpenVms MS-DOS

cp COPY COPY

mv RENAME REN

ln Pas d’´equivalence Pas d’´equivalence

Tab. 2.6 – ´Equivalence des commandes cp, mv et lnentre Unix,OpenVms et MS-DOS

2.2.4 Effacement d’un fichier - Commande rm

Syntaxe :

rm [-irf] fichier...

La commande ”rm” est utilis´ee pour effacer des fichiers. Une fois effac´es, les fichiers ne peuvent plus ˆetre r´ecup´er´es1. La commande rm exige au moins un argument. Si plusieurs arguments sont fournis `a la commande, tous les fichiers sp´ecifi´es seront effac´es en fonction des modes de protections.

1`a moins, biensˆur, de diposer d’un syst`eme de sauvegarde