J'ai rencontré des schémas de globbing et des caractères génériques et je suis particulièrement intéressé [!]
.
Cette construction est similaire à la
[!]
construction, sauf qu'au lieu de faire correspondre des caractères à l'intérieur des crochets, elle correspondra à n'importe quel caractère, tant qu'elle n'est pas répertoriée entre les[
et]
.
rm myfile [!192]
Je pense que ce qui précède supprimera tout / tous les fichiers, à l'exception de tous / tous les fichiers qui ont 192 dans leur nom.
Je suis cependant préoccupé par la bonne utilisation de ceci avec une extension de fichier, et en particulier de multiples conditions.
Quelle serait la syntaxe appropriée dans une telle situation?
rm myfile [!.gif .csv. mp3]
ou
rm myfile [!.gif !.csv !.mp3]
Je crains que la période ne soit mal placée, et donc tout fichier avec un .
(qui serait certainement l'un d'eux?) Serait alors manipulé, lorsque je chercherais à provoquer la manipulation de fichiers spécifiques.
Cette construction est similaire à la [ ]
construction, sauf qu'au lieu de faire correspondre des caractères à l'intérieur des crochets, elle correspondra à n'importe quel caractère, tant qu'elle n'est pas répertoriée entre les [
et ]
.
(extrait de http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm )
Maintenant; pour moi, cela suggère alors qu'un singulier !
est suffisant, et toutes les valeurs qui y figurent après sont contenues dans la plage.
[!]
est similaire mais pas comme[!]
^
a exactement la même signification que !
dans ce contexte, [^a]
exclut donc a
exactement comme le [!a]
fait: Si le premier caractère suivant le [est un! ou ^ alors tout caractère non inclus est mis en correspondance. ( man bash
)
rm myfile [!192]
supprimera myfile
, ainsi que tout fichier caractère non nommé 1
, 9
ou 2
.
ls my-pattern
ouecho my-command
pour vérifier si le globbing est fait comme vous le souhaitez, avant d'exécuterrm