voila j'ai un scipt en unix que j'arrrive pas à faire...

Problème 1
Déevelopper, en C-Shell, le script backup qui rec¸oit un nom de r´epertoire en param`etre et parcourt
r´ecursivement l’arborescence enracin´ee en ce r´epertoire pour y cr´eer des copies de sauvegarde des fichiers
r´eguliers accessibles en lecture.
Ainsi, dans chaque r´epertoire parcouru par le script, le nouveau r´epertoire cach´e .backup sera cr´e´e.
Celui-ci contiendra les copies de sauvegarde des fichiers r´eguliers du r´epertoire. Le nom d’une copie de
sauvegarde sera le nom du fichier originel auquel le script viendra concat´ener la date du backup.
Imaginons donc, dans l’arborescence dont on passe la racine en param`etre du script, un r´epertoire rep
contenant le fichier r´egulier lisible fich. Si rep est accessible en ´ecriture, le r´epertoire .backup y
sera cr´e´e. Si le script est ex´ecut´e le vendredi 19 janvier 2007 `a 18h01, la copie de sauvegarde du fichier
se nomme "rep/.backup/fich-Fri Jan 19 18 :01 :31 CET 2007" (c’est la commande
date qui d´etermine le suffixe `a ajouter au nom de fichier).
Si la commande backup est appliqu´ee plusieurs fois sur un mˆeme r´epertoire, alors plusieurs copies de
sauvegarde peuvent ˆetre effectu´ees pour le mˆeme fichier : chaque nom de copie ´etant suffix´e par la date du
backup. Toutefois, le script ne r´ealisera pas de nouvelle copie de sauvegarde si le fichier n’a pas ´et´e
modifi´e depuis sa derni`ere sauvegarde (On se basera pour cela sur la date de derni`ere modification du
fichier) !
Indications :
– Seuls les fichiers r´eguliers accessibles en lecture doivent ˆetre sauvegard´es ;
1
– les copies de sauvegardes ne peuvent ˆetre r´ealis´ees que dans les r´epertoires accessibles en ´ecriture ;
– il est autoris´e de cr´eer d’autres fichiers dans le r´epertoire .backup si n´ecessaire ;
– la commande newer file1 file2 permet de savoir si le fichier file1 a ´et´e modifi´e plus
r´ecemment ou non que le fichier file2. Cette commande retourne 0 dans le cas o`u file1 est
plus r´ecent que file2 ou de mˆeme anciennet´e. La commande retourne 1 dans le cas contraire.
Cette commande ne fait pas syst´ematiquement partie de toute distribution UNIX. Dans le cas o`u
votre UNIX ne la comporterait pas, son code source C se trouve en
ftp ://ftp.umh.ac.be/pub/ftp info/Delgrange/C/newer.c
Exemple :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
% ls -RF
.:
rep/
./rep:
file rep1/ rep2/
./rep/rep1:
fichier
./rep/rep2:
file
% backup rep
% ls -alRF rep
rep:
total 24
drwx------ 5 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 3 olivier olivier 4096 2007-01-21 19:39 ../
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 .backup/
-rw------- 1 olivier olivier 13 2007-01-21 19:40 file
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 rep1/
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 rep2/
rep/.backup:
total 16
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 5 olivier olivier 4096 2007-01-21 19:42 ../
-rw------- 1 olivier olivier 29 2007-01-21 19:42 .fdt
-rw------- 1 olivier olivier 13 2007-01-21 19:42 file-Sun Jan 21 19:42:17 CET 2007
rep/rep1:
total 16
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 5 olivier olivier 4096 2007-01-21 19:42 ../
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 .backup/
-rw------- 1 olivier olivier 10 2007-01-21 19:40 fichier
rep/rep1/.backup:
total 16
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 ../
-rw------- 1 olivier olivier 29 2007-01-21 19:42 .fdt
-rw------- 1 olivier olivier 10 2007-01-21 19:42 fichier-Sun Jan 21 19:42:17 CET 2007
rep/rep2:
total 16
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 ./
2
drwx------ 5 olivier olivier 4096 2007-01-21 19:42 ../
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 .backup/
-rw------- 1 olivier olivier 8 2007-01-21 19:41 file
rep/rep2/.backup:
total 16
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 ../
-rw------- 1 olivier olivier 29 2007-01-21 19:42 .fdt
-rw------- 1 olivier olivier 8 2007-01-21 19:42 file-Sun Jan 21 19:42:17 CET 2007
% vi rep/rep1/fichier
% backup rep
% ls -alRF rep/rep1
rep/rep1:
total 16
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 5 olivier olivier 4096 2007-01-21 19:42 ../
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 .backup/
-rw------- 1 olivier olivier 12 2007-01-21 19:42 fichier
rep/rep1/.backup:
total 20
drwx------ 2 olivier olivier 4096 2007-01-21 19:42 ./
drwx------ 3 olivier olivier 4096 2007-01-21 19:42 ../
-rw------- 1 olivier olivier 58 2007-01-21 19:42 .fdt
-rw------- 1 olivier olivier 10 2007-01-21 19:42 fichier-Sun Jan 21 19:42:17 CET 2007
-rw------- 1 olivier olivier 12 2007-01-21 19:42 fichier-Sun Jan 21 19:42:37 CET 2007
merçi pour votre aide