Mise à jour index et ajout des notes de 2022 en vrac
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Lundi 24 janvier 2022
|
||||
---
|
||||
|
||||
|
||||
[Core Team] Officier Azarov:drapeau_arc_en_ciel: Hier à 17 h 34
|
||||
Salut ! Je suis un cours à la fac et je bute sur une question de shell assez basique.
|
||||
Si quelqu'un·e peut m'éclairer, je suis preneuse !
|
||||
L'énoncé :
|
||||
Dupont a fait une erreur de frappe, il a saisie la commande mv a b/* au lieu de mv b/* a.
|
||||
Que se passe-t-il si b est un répertoire contenant 3 sous-répertoires et aucun autre fichier ? Expliquez pourquoi cela se produit.
|
||||
Dans mon terminal :
|
||||
J'ai un répertoire a et un répertoire b, qui a lui-même 3 sous-répertoires : c, d et e. Soit visuellement :
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
e
|
||||
Quand je tape mv a b/*, a est déplacé dans un des sous-répertoires de b (le dernier, selon l'ordre alphabétique). Les deux autres sous-répertoires de b sont déplacés dans ce sous-répertoire également. Soit visuellement :
|
||||
b
|
||||
e
|
||||
a
|
||||
c
|
||||
d
|
||||
Est-ce qu'une bonne âme aurait une idée de pourquoi ça arrive ? (et aussi, déjà, avez-vous les mêmes résultats chez vous ?) (interrogations existentielles, bonsoir)
|
||||
|
||||
|
||||
Anh-Vu il y a 14 heures
|
||||
hello, le comportement que tu observes est tout à fait normal et déterministe, heureusement ! dans ton shell b/* est remplacé par la liste des répertoires b/c b/d b/e avant d'appeler la commande mv . Aussi le dernier argument de mv est le répertoire de destination. Donc quand tu appelles
|
||||
mv a b/*
|
||||
le shell traduit en
|
||||
mv a b/c b/d b/e
|
||||
et mv comprend qu'il faut déplacer a b/c b/d dans b/e
|
||||
Aussi le shell assure que le remplacement de b/* est dans l'ordre alphabétique des occurences trouvées (modifié)
|
||||
|
||||
|
||||
En général, un bout de code est analysé à partir de la droite (c'est un raccourci que je prends). Par contre, c'est vrai qu'il faut savoir que b/* est une expression qui va être évalué... c'est pas forcement évidant :slightly_smiling_face: (et j'ajoute ceci parce que le shell est un langage de programmation comme un autre, à ceci prêt que l'on passe notre temps dans son interpréteur à écrire une instruction à la fois et rarement dans un fichier à écrire plusieurs ligne, contrairement aux autres langages :))
|
||||
Reference in New Issue
Block a user