Syntaxe de filtrage

Objectif du filtrage

Le filtrage est conçu pour vous aider à explorer, analyser et comprendre le contenu des sources de données comparées.
Il vous permet de vous concentrer sur les fichiers et les répertoires qui correspondent à des critères spécifiques, ce qui facilite les opérations suivantes :

  • Inspecter les différences entre les sources de données
  • Identifier les fichiers manquants, obsolètes ou inattendus
  • Détecter les anomalies dans les grands ensembles de fichiers
  • Affiner les résultats lorsque vous travaillez avec de grands volumes de données

Au lieu de parcourir les résultats de comparaison bruts, les filtres vous permettent d’exprimer ce que vous recherchez à l’aide de conditions claires et précises.

Syntaxe de filtrage

Les filtres sont des expressions logiques telles que :

is:file AND name=="report*" AND A1.size>1MB AND NOT on:B1
# filters out files whose name starts with "report", whose size is greater than 1MB and which are not located on the B1 Data Source.

Chaque filtre est évalué pour chaque fichier ou dossier, sur la base de ses métadonnées et de sa présence dans les différentes sources de données.

Recherche de texte simple

Il vous suffit de taper du texte en clair pour rechercher des noms de fichiers et de dossiers :

report 2025
# Find all files and folders whose name contains both "report" and "2025".

Opérateurs universels

Les opérateurs universels s’appliquent directement aux fichiers et aux dossiers sans qu’il soit nécessaire de spécifier une source de données particulière.

OpérateurExempleDescription
namename=="file1.txt"Correspondance exacte ou par motif sur le nom du fichier
onon:A1Vérifie si le fichier existe dans la source de données A1
onlyonly:A1Vrai si le fichier n’existe que dans A1
isis:fileType de fichier : file, dir, ou directory
has:actionshas:actions.copy>0Action de synchronisation : copy, delete, etc.

Opérateurs spécifiques à la source de données

Ces opérateurs comparent des propriétés spécifiques des sources de données, généralement pour détecter des différences.

OpérateurExempleDescription
contentA1.content==A2.contentComparaison du contenu binaire
content-and-dateA1.content-and-date==A2.content-and-dateComparaison du contenu et de la date de dernière écriture
last-write-timeA1.last-write-time > A2.last-write-timeComparaison des dates de dernière modification
sizeA1.size != A2.sizeComparaison de la taille des fichiers

Opérateurs logiques

Utilisez les opérateurs logiques pour combiner ou annuler des conditions :

  • ET : name:"*.log" AND A1.size>1MB
  • OU : is:file OR is:directory
  • PAS: NOT name=="temp*"
  • Parenthèses ( … ): not (A1.size<10KB or name:"temp*")

Opérateurs de comparaison

OpérateurSignificationExemple
== ou =ÉquivalentsA1.size == 1024
!= ou <>Pas égal àA1.size != 0
<, >, <=, >=Comparaisonslastwritetime >= 2025-01-01
=~Correspond à une expression rationnellename =~ "^report.*\.pdf$"

Sources de données et identificateurs d’inventaire

ByteSync compare plusieurs sources d’inventaire, appelées sources de données, identifiées par des codes courts :

IdentifiantRôle
AInventaire principal du nœud A
A1, A2Sources de fichiers individuels sous le nœud A

Filtrer par nom

Vous pouvez filtrer les fichiers en fonction de leur nom à l’aide de l’option nom pour filtrer les fichiers en fonction de leur nom. Cela permet d’inclure ou d’exclure des fichiers en fonction d’un nom exact, d’un motif ou d’une expression régulière.

Comparaisons de base

Utilisez : ou == pour rechercher les fichiers et dossiers dont le nom est égal à la valeur spécifiée.

name:README.md
name=="file1.txt"


Utilisez != pour faire correspondre les fichiers et les dossiers dont le nom est différent de la valeur spécifiée.

name!="temp.log"

Caractères génériques

Vous pouvez utiliser des caractères génériques (*) pour faire correspondre n’importe quelle séquence de caractères.

name:file1*
name==*.log

Expressions régulières

Utiliser =~ pour faire correspondre un motif d’expression régulière :

name=~"^log_.*\\.txt$"
# This matches any .txt file whose name starts with log_.

Filtrer par actions de synchronisation

Les actions de synchronisation peuvent être filtrées avec l’opérateur has:actions.

Sources des actions

Mot-cléDescription
targetedFaire correspondre les actions ciblées
rulesActions de correspondance résultant des règles de synchronisation

Types d’actions

Mot-cléDescription
copyLe contenu et les dates du fichier seront synchronisés
copy-contentLe contenu du fichier sera synchronisé
copy-datesLes dates seront synchronisées
createLe répertoire sera créé
deleteLe fichier/répertoire sera supprimé
do-nothingSi l’option Ne rien faire est activée, rien ne sera fait sur le fichier/répertoire.

La source de l’action et le type d’action peuvent être omis, mais si les deux sont utilisés, la source de l’action doit être spécifiée avant le type d’action.


Exemples

Fichiers qui seront synchronisés (contenu et date) :

has:actions.copy

Fichiers qui seront supprimés en raison d’une règle de synchronisation :

has:actions.rules.delete

Fichiers qui ne seront pas touchés :

has:actions.do-nothing

Fichiers de plus de 10 Mo sur A1 :

A1.size > 10485760

Fichiers modifiés depuis 2024 sur B :

B.last-write-time >= 2024-01-01

Fichiers .log qui seront synchronisés :

name == "*.log" AND actions.copy

Répertoires uniquement :

is:directory
# can also be filtered out with is:dir

Fichiers présents uniquement dans l’inventaire A :

only:A

Fichiers présents à la fois dans A1 et B1 :

on:A1 AND on:B1

Fichiers présents dans A1 ou A2 et B1 :

(on:A1 OR on:A2) AND on:B1

Cette syntaxe vous permet de contrôler précisément quels fichiers sont inclus ou exclus de vos opérations de synchronisation.

Article précédent

Comparaison des données