Gros probleme

Fermé
jeff - 11 sept. 2004 à 09:54
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 12 sept. 2004 à 13:03
Bonjour a tous les passiones de linux.
Voici mon gros probleme que j'ai a resoudre d'ici la fin du week end. Pouvez-vous m'aider???...

1. Quelles sont les règles de substitution de bash concernant le
caractère "~"?
2. Donner un exemple en shell qui utilise la valeur (code de
terminaison) d'une commande et un autre exemple qui utilise le
resultat d'une comande (normalement affiché sur la sortie
standard).
3. Donner une suite de commande pour supprimer chaque fichier du
registre courant portant un nom de la forme nom~ dans la mesure où
le fichier de nom nom existe aussi.
4. Donner une suite de commande permettant d'obtenir, dans le
repertoire courant, un fichier texte liste.txt contenant des noms
de fichiers du repertoire courant. Les noms de fichier commençant
par "." ou le nom "liste.txt" lui-même ne doivent pas apparaitre
dans cette liste.
5. Indiquer le nom du gestionnaire de fenêtre que vous utilisez
generalement dans les seances de TD, le nom de l'emulateur de
terminal, le nom de l'éditeur de textes, le nom du navigateur
web.
Indiquer s'il y a lieu le ou les fichier d'initialisation utilisé
par ces applications.
6. Quelle est sous Emacs, la difference entre une clé de commande
et une foction En quoi ces notions sont-elles liées entre elles ?
7. Pourquoi l'appel system pour definir un fichier s'appele-t-il
unlink?
Donner 3 erreurs pouvant survenir dans l'execution de cet appel.
8. Indiquer succintement les avantages et inconvenients des
fonction getchar et putchar par rapport aux appels system read et
write.
9. Indiquer et decrire succintement 5 signaux différents que les
processus Unix peuvent utiliser.
10. Un processus P crée un nouveau processus Q par l'appel system
fork. Après la fin de l'execution de cet appel, quelles
différences y'a t'il entre les informations gérée par le system
concernant P et celle concernant Q?

Dans ce qui suit on poura utiliser la commande interne "test-L
nom" qui réussit ssi "nom" est un lien symbolique.
On poura aussi utiliser la commande "readlink nom" qui a la même
fonction mais qui affiche un plus sur la sortie standard, en cas de
réussite, le nom contenu dans le lien.
Enfin "readlink -f nom" affiche sur la sortie standard le chemin absolu, dans la mesure où il existe, obtenu à partir de nom en suivant recursivement jusqu'au bout tous les liens symbolique ; si le chemin absolu
obtenu n'existe pas dans le system de fichier, la commande echoue
et n'affiche rien.

Soit un lien symbolique "x" qui designe (pas necessairement
directement) un nom de fichier "y" existant qui n'est pas un lien
symbolique.
11. Ecrire un script Shell, ayant "x" comme argument, pour inverser
le lien. Aussi "x" doit devenir le nom d'un vrai fichier contenant
l'ancien "y" et "y" devenir un lien symbolique sur "x".
12. Donner des exemples judicieusement choisi qui permettent de
vérifier, dans tous les cas de figure, la transformation est sans
conséquence sur l'utilisation normal des noms de fichier
concerné.

On suppose qu'il existe une commande "relative source cible" qui
affiche sur la sortie standard le chemin relatif le plus court
entre le chemin source et le chemin cible (ex:
"relative/usr/home/machin" "/usr/home/truc/toto" affiche
"../truc/toto").
13. Ecrire un script Shell qu'inverse tous les liens de chacun
des repertoires passé en argument, en ne générant que des liens
relatifs les plus court possible.
En cas de liste d'argument vide, le script opère dans le
repertoir courant.
Il reste à réaliser la commande relative
14. Essayer d'écrire un script pour cela. En cas de difficultés,
indiquer et justifier les outils à utiliser pour les pallier.

Merci d'avance.

7 réponses

Ravachol Messages postés 560 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120
11 sept. 2004 à 10:36
Salut.
C'est un devoir que tu dois rendre ?
Si oui, sans vouloir jouer les pères la morale, je ne pense pas que cela t'aidera beaucoup de faire les exos à ta place.
Par contre si tu bloques sur des points particuliers, pose la question ici en détaillant bien ce qui te bloques.

Bon courage.

A++

La pensée ne commence qu'avec le doute.
ROGER MARTIN DU GARD
0
Normal!
0
Ok les gars.
Loin de moi l'idee de vous prendre pour des con, mais je serais heureux d'aparaitre quand meme dans votre top 100 des plus gros blerots.
Vous avez raison, ceci est un sujet que j'essaie de faire pour m'entraine a une epreuve d'utilisation des systeme informatique.
En fait depuis ce matin j'ai plus ou moins trouve la reponse aux 10 premieres questions. Mais n'ayant jamais fait de script shell je galere sur les 4 dernires questions. Mais j'essaie a l'aide de bouquins de faire un truc.
Je ne demande pas de reponse a ces question, mais juste un peu d'aide ou une mise sur la voie.
Voila
0
Xenor Messages postés 3310 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015 51
11 sept. 2004 à 15:03
Salut,
Dans ce cas précise sur quelle question tu bloques exactement et décris nous ce que tu as déjà tenté et pourquoi tu n'y arrive pas ou qu'est-ce que tu comprends pas...

___________
- X e n o r ---
Jeune & Vaillant Guerrier CCM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alors voila je bloque sur la question 11.
x est un lien symbolique vers y, et nous voulons que notre script qui prend x en argument, inverse ce lien. C a dire au bout du compte y sera un lien symbolique vers x.
Nous avons trouve la commande pour fabriquer un lien symbolique (ln -s y s pour cree x->y)
Et le gros pb, c qu'on ne sait pas transformer un fichier existant en un lien symbolique, la machine nous renvoie `y': File exists
Comment faire ???
Merci d'avance
0
copie du fichier y vers z, copie du fichier x vers y, copie du fichier z vers x, changement de la destination du lien de x vers y!

si la commande ne peut pas écraser le fichier y il suffit d'ajouter un intermédiaire:

copie du fichier y vers z, suppression de y, copie du fichier x vers y, copie du fichier z vers x, changement de la destination du lien de x vers y!



c'est ca?
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
11 sept. 2004 à 19:54
C'est une solution, mais sans doute pas celle attendue vu les questions précédantes.

La solution se trouvent dans l'aide de ln (ln --help)
Faut jeter un oeil vers l'option de backup :)

...Mana mana
Tutudutu...
0
Utilisateur anonyme > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
12 sept. 2004 à 02:02
barf! pas besoin de baqueupe!


#!/ova/onfu
tebhvx=`yf -y $1|frq -er "f/.*-> (.*)$/\1/"`
ya -s $tebhvx $1
ya -fs $1 $tebhvx

(je trouve mon sed crade -encore que je viens de le nettoyer :)- mais c'est à l'arrache, qqun fera plus propre)
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > Utilisateur anonyme
12 sept. 2004 à 02:20
Bah oui mais non :)

enfin tu recuperes déjà ce qu'il faut dans $tebhvx

Mais tes deux commandes en dessous, elles fonctionnent pas si ?
moi j'ai:
ln: 'x' fichier existant.
ln: 'y' et 'x' identifient le même fichier.
<note perso>depuis quand il est en français ce poste!?</note perso>

...Mana mana
Tutudutu...
0
Utilisateur anonyme > Utilisateur anonyme
12 sept. 2004 à 02:27
si si, au poil!

tu fais de feu le lien symbolique un lien dur.... euh bon bref tu fais de ton symlynk un hard link en lui foutant l'option -f dans la gueule (pour que le post reste français :-)), sur quoi tu as ensuite toute latitude pour faire un symlink vers celui-ci, qui devient le seul à pointer sur l'inode...

essaye, tu verras, ça gazouille

par contre j'ai rien trouvé de plus élégant (et j'ai lu aujourd'hui même mais impossible de me souvenir où, et que c'était le seul moyen) pour connaître la cible d'un symlink (je m'inscriche un peu en faux, avec namei et un sed kivabien -mais lourdeau- c'est jouable)
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > Utilisateur anonyme
12 sept. 2004 à 02:30
Ha ben oui, c'est bien vrai ça, j'ai été un gros boulet la :)

Tu connais la position de "s" par rapport à "f" ? :-D

Effectivement ça fonctionne au poil, je sais pas dans quoi je me suis embarqué tout à l'heure, j'ai totalement zappé l'existance des liens hard :)

...Mana mana
   Tutudutu...
0
Tout dépends comment on les comprends les questions!!!!


moi j'y trouve une solution simple du même genre pour chaque (ou presque!).


C'est quoi le niveau de jeff?
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
11 sept. 2004 à 22:30
Tout à fais, mais je me base sur l'énnoncé, et donc le niveau que l'on attend de lui.
La question est-elle là pour apprendre a renommer un fichier, ou pour optimiser l'utilisation de ln ?

...Mana mana
   Tutudutu...
0
franck > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
11 sept. 2004 à 22:34
Bien vu,

jocker!!!!!


tu as certainement raison.
0