J'ai deux fichiers dans mon répertoire:Pourquoi foo {bar, baz} ne s'étend pas à "foobar" et "foobaz"?
com.my.arsys.core.js
com.my.arsys.core-libs.js
Maintenant, je veux les faire correspondre à l'aide modèle englobement (les accolades) et les copier dans a
dossier donc j'exécutez la commande suivante:
cp com.my.arsys.{core, core-libs}.js a
Cependant Je reçois les erreurs suivantes:
cp: cannot stat 'core,': No such file or directory
cp: cannot stat 'core-libs,': No such file or directory
Je pense que le problème est avec la syntaxe. quelqu'un peut-il aider s'il vous plait?
BTW, ce n'est pas du tout un motif glob. Les modèles glob ne développent que les fichiers existants; l'expansion de l'accolade vous donne des résultats si les noms donnés existent en tant que fichiers ou non. Si vous exécutiez, disons, '{a, b} *. Txt', l'expansion de l'accolade donnerait deux résultats,' a * .txt' et 'b * .txt', et chacun d'entre eux serait alors étendu séparément un glob. –
... cela signifie que, étant donné que l'exemple '{a, b} *. Txt', si vous avez' boo.txt' et rien qui commence par un 'a' et se terminant par' .txt', vous pourriez obtenir comme résultats 'a * .txt' et' boo.txt': Le glob qui a un résultat serait développé, celui qui ne le ferait pas. (Si la configuration d'exécution de votre shell a des options telles que 'failglob' ou' nullglob', ce comportement peut être modifié). –
@CharlesDuffy, merci beaucoup pour la clafication! –