Ceci est une question simple. J'essaie de copier tous les fichiers du répertoire actuel qui commencent par "axis-2" et se terminent par ".jar" dans un répertoire cible, disons que c'est ~ / MyDirectory. Ma première pensée a été d'essayer
cp '^axis2.*jar$' ~/MyDirectory
Mais cela ne fonctionne pas. Je ne suis même pas sûr de pouvoir utiliser des expressions régulières avec cp. Je n'ai pas non plus vraiment utilisé d'expressions régulières depuis un moment et ma syntaxe pourrait être totalement éteinte. Lorsque j'essaie, ce cp génère simplement un message d'erreur "Aucun fichier ou répertoire". Quelqu'un a-t-il des suggestions sur la façon de procéder? Merci!
la source
Si GNU
find
et GNU sontcp
disponibles, vous pouvez utiliser des expressions régulières comme dans la commande suivante:Cela peut être pratique si ni le modèle glob ni le modèle bash étendu glob ne répondent à vos besoins.
la source
J'aime vraiment la syntaxe regex du
rename
script perl (par Robin Barker et Larry Wall), par exemple:Je voulais simplement exactement la même chose avec une commande de copie:
copy "s/OldFile/NewFile/" OldFile*
J'ai donc dupliqué ce script et changé la déclaration de renommage pour copier via
File::Copy
. Et voilà! Une commande de copie avec la syntaxe perl-regex: jcward / vopy .la source