Aller au contenu

explication d'une commande par des Linuxiens


garthriter

Messages recommandés

Membre, 47ans Posté(e)
garthriter Membre 5 448 messages
Maitre des forums‚ 47ans‚
Posté(e)

Bonjour,

Si un Linuxien passait par là et pouvait m'expliquer le comportement d'une commande, ce serait sympa.

J'ai un chemin qui se compose ainsi (avec des fichiers dans les différents répertoires mais ce n'est pas important)

a/
a/aa/
a/aa/aa1/
a/aa/.aa2/
a/aa/aa3/
a/bb/
a/cc/
a/dd/

Je me positionne dans a/aa/ et je tape dans le terminal la commande "cp --recursive .* aa3/"

Mon idée de départ était de copier tout ce qui se trouve dans a/aa/ (fichiers et dossiers cachés, d'où le point), pour les mettre dans aa3/.

Mais le résultat est plus qu'inattendu (du moins pour ce que je pensais connaître).

Le résultat est que tous les fichiers/dossiers, y compris dans le dossier parent a/, ont été copiés dans aa3/.

A savoir, même les dossiers dd/ cc/ bb/ etc.

Pourtant rien dans la commande n'implique de remonter aux dossiers parents. Et quand bien même le "." serait interprété comme "ce dossier" et non le caractère "." signifiant caché, je ne m'explique pas ce résultat.

J'ai déjà trouvé un contournement pour faire ce que je voulais. Mais cela m'ennuie de ne pas comprendre le pourquoi de ce résultat en particulier.

Si un Linuxien chevronné avait une explication....

Merci...

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant
Membre, 🐧 Forumeur libre, 54ans Posté(e)
Ed. Membre 959 messages
54ans‚ 🐧 Forumeur libre,
Posté(e)

Bonjour,

Le 21/10/2021 à 09:20, garthriter a dit :

Pourtant rien dans la commande n'implique de remonter aux dossiers parents. Et quand bien même le "." serait interprété comme "ce dossier" et non le caractère "." signifiant caché, je ne m'explique pas ce résultat.

Ben si justement : « .* » signifiant « un point suivi (ou non) de n'importe quel(s) caractère(s)  », il y a correspondance avec le répertoire parent « .. ».

Je suppose que tu as utilisé shopt -s dotglob afin de prendre en compte les fichiers et répertoires cachés sans utiliser de motifs débordant sur les noms de répertoires courants et parents.

 

Lien à poster
Partager sur d’autres sites

Membre, 47ans Posté(e)
garthriter Membre 5 448 messages
Maitre des forums‚ 47ans‚
Posté(e)
Le 24/10/2021 à 12:43, Ed. a dit :

Bonjour,

Ben si justement : « .* » signifiant « un point suivi (ou non) de n'importe quel(s) caractère(s)  », il y a correspondance avec le répertoire parent « .. ».

Je suppose que tu as utilisé shopt -s dotglob afin de prendre en compte les fichiers et répertoires cachés sans utiliser de motifs débordant sur les noms de répertoires courants et parents.

 

Bonjour Ed.

Merci !

Pffff, c'était pourtant évident que <<.*>> inclurait <<..>>. Je ne m'explique pas comment je n'y ai pas pensé.

:gurp:

Non, je n'utilise pas shopt, que je ne connaissais pas. Je vais me renseigner dessus. Encore merci !

Lien à poster
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×