Utiliser des masques sur les noms de fichiers

Les masques sur les noms de fichiers sont un moyen facile et pratique de mettre de côté des données. En utilisant les masques, vous pouvez facilement spécifier quels fichiers et dossiers doivent être traités et ceux qui doivent être ignorés. Il y a juste trois points sur les masques, qu'il faut savoir :

  1. Il existe les masques d'inclusion sur les noms de fichiers (-m, -x) et ceux sur les noms de dossiers (-dm, -dx)
  2. Il y a les masques d'inclusion (-m, -dm) et d'exclusion (-x, -dx )
  3. Vous pouvez créer vos masques en utilisant le symbole "*" aussi bien que les expressions régulières (regex)
  4. Vous pouvez définir plusieurs masques, séparés par une virgule, ou un nom de fichier texte, contenant un certain nombre de masques (à la façon de @filename), comme argument pour les options -m et -x dans une ligne de commande. Notez que vous pouvez utiliser les masques sur les noms de fichiers et de dossiers ensemble.
  5. Le principe de "masque de nom de fichier/dossier" agit non seulement sur un nom de fichier/dossier mais aussi son chemin relatif (ce chemin démarre à partir du dossier source)

Tout d'abord, voyons ce que le numéro #1 signifie. Il y a plusieurs cas, où il pourrait être très pratique de diviser les masques en masques de fichiers et les masques de dossiers. Par exemple, nous voulons copier tous les fichiers .htm de c:\data et tous ses sous-dossiers. C'est facile, nous allons utiliser les masques d'inclusions :

nnbackup.exe -i c:\data -o d:\backup -s -m *.htm

Explication : Copie tous les fichiers .html contenus dans c:\data et ses sous-dossiers vers d:\backup.

A présent, si nous nous voulons exclure le sous-dossier c:\data\wrong_data ? Le masque d'exclusion sur les noms de dossier peut nous aider :

nnbackup.exe -i c:\data -o d:\backup -s -m *.htm -dx "wrong_data"

Explication : Copie tous les fichiers .html contenus dans c:\data et ses sous-dossiers (sauf c:\data\wrong_data) vers d:\backup.

A présent voyons le point numéro #2. Comme vous l'avez déjà vu dans l'exemple précédent, il y a des masques d'inclusion et d'exclusion. Utiliser un masque est très facile : tous les fichiers sont traités sauf ceux qui correspondent au masque. Par exemple :

nnbackup.exe -i c:\data -o d:\backup -x *.txt

Explication : Copie depuis c:\data vers d:\backup, tous les fichiers exceptés ceux qui ont l'extension .txt.

Et le masque d'inclusion au contraire, spécifie quels fichiers doivent être traités :

nnbackup.exe -i c:\data -o d:\backup -m *.htm*

Explication : Copie depuis c:\data vers d:\backup, les fichiers avec l'extension htm et html, et seulement ces fichiers.

Les masques d'inclusion et d'exclusion peuvent être utilisés ensemble.

A présent voyons le point numéro #3. Le masque le plus simple peut être créé en utilisant le symbole '*' qui s'utilise en remplacement de zéro ou plusieurs caractères. par exemple, le masque '*test' correspond à 'test', 'contest', '123test', mais pas à 'test123' et 'test_one'. D'un autre côté, les masque '*test* correspond à tous les mots de l'exemple précédent et tous les autres mots, qui commencent par 'test', contiennent 'test', ou finissent par 'test'.

Le symbol '*' n'est pas notre seul choix lors de la création de masques. Dans vos masques vous pouvez aussi bien utiliser les regular expressions (regexps, REs) - un outil puissant de création de modèle qui peuvent être utilisées pour rechercher et comparer n'importe quel symbole et chaînes de caractères (même les plus complexes) dans un texte. La syntaxe des expressions régulières est brièvement décrite ici.

Toutes les expressions régulières doivent être entre des slashes (/.../) lors de l'utilisation de masques.
nnbackup.exe -i c:\data -o d:\backup -m "/\d*\.htm/"

Explication : Copie de c:\data à d:\backup, seulement les fichier ayant l'extension .htm, et dont le nom est composé de nombre.

Point #4. Plusieurs masques, séparés par une virgule, peuvent être utilisés comme argument pour les options -m, -dm, -x et -dx dans une ligne de commandes :

nnbackup.exe -i c:\data -o d:\backup -m *.htm*,*.css,*.gif,*.jpeg

Explication : Copie de c:\data à d:\backup, les fichiers qui possèdent les extensions suivantes : htm, html, css, gif et jpeg.

nnbackup.exe -i c:\data -o d:\backup -x *.txt,*.doc,*.rtf,*.pdf

Explication : Copie de c:\data à d:\backup, tous les fichiers sauf ceux qui possèdent les extensions suivantes : txt, doc, rtf et pdf.

Un autre type d'argument que -m et -x peuvent accepter est le nom d'un fichier texte contenant une liste de masques; chaque masque doit être placé sur une ligne différente. Par exemple, nous pouvons créer un fichier texte doc.msk, contenant ce qui suit :

*.txt
*.doc
*.rtf
*.pdf

A présent, ce nom de fichier peut être utilisé comme argument pour les options -m et -x:

nnbackup.exe -i c:\data -o d:\backup -m @doc.msk

Explication : Copie de c:\data vers d:\backup tous les fichiers ayant l'extension .txt, .doc, .rtf et .pdf.

nnbackup.exe -i c:\data -o d:\backup -x @doc.msk

Explication : Copie de c:\data vers d:\backup, tous les fichiers, sauf ceux qui ont les extensions .txt, .doc, .rtf et .pdf.

La capacité de nnBackup à lire les masques depuis un fichier texte peut devenir très utile lorsque vous utilisez souvent les même masques ou lorsque la liste de fichiers à traiter est générée par un programme externe :

Voici un autre exemple de fichier texte contenant des masques; il contient des masques pour les fichiers temporaires et comprend aussi des masques incluant des sous-dossiers :

*.~*
*.bkp
*.bak
*.nsx *.ntx *.idx
*\temp*\* *\external*\*

Notez que vous pouvez utiliser les masques sur les noms de fichiers et de dossiers en même temps. C'est très pratique par exemple, lorsque vous voulez exclure un ou plusieurs dossiers du traitement :

nnbackup.exe -i c:\data -o d:\backup -s -m *.htm -dx "wrong_*,*temp*"

Explication : Copie de c:\data vers d:\backup, tous les fichiers .htm et tous les sous-dossiers (sauf les sous-dossiers dont le nom commence par 'wrong_' et les sous-dossiers dont le nom contient 'temp').

Et à présent, le denier point mentionné :point #5 :un masque sur les noms de fichiers/dossiers peut ne pas inclure seulement le nom du fichier/dossier, mais son chemin relatif également. (qui démarre à partir du dossier source). Ceci nous fait travailler avec des masques un peu plus compliqués, mais nous donne plus de puissance en retour. Les règles sont assez simples :si le symbole '\' est présent dans le masque de dossier, le masque est comparé au chemin relatif du fichier/dossier. S'il n'y a pas de backslash dans le masque, il est comparé au nom de fichier/dossier seulement.

L'inclusion du chemin relatif dans le masque de nom de fichier/dossier permet d'inclure (ou exlure) du traitement des sous-dossiers entiers, et les fichiers qu'ils contiennent. Par exemple, si c:\data a un sous-dossier nommé 'images', je peux utiliser le masque suivant :

nnbackup.exe -i c:\data -o d:\backup -m *.exe,*images\* -s

Explication : Copie tous les fichiers exécutables et tout le contenu du sous-dossier 'images' de c:\data et tous ses sous-dossiers vers d:\backup.

Lorsque vous incluez ou excluez des dossiers complets,il peut être pratique d'utiliser les masques d'inclusion et d'exclusion en même temps. Modifions l'exemple ci-dessus de telle manière que les fichiers avec l'extension bmp dans le sous-dossier images ne soient pas copiés :

nnbackup.exe -i c:\data -o d:\backup -m *.exe,*images\* -x *images\*.bmp -s

Explication : Copie tous les fichiers exécutables et tout le contenu du sous-dossier images (sauf les fichiers avec l'extension bmp) de c:\data et tous ses sous-dossiers vers d:\backup.