Ukážeme vám, jak můžete vyloučit soubor nebo adresář v rsync pomocí různých příkladů. Zde uvedené příklady byly testovány na Ubuntu 20.04 LTS, jsou však platné i pro jiné distribuce Linuxu s nainstalovaným rsync.
Vyloučit konkrétní soubor
Při synchronizaci adresáře možná budete chtít vyloučit konkrétní soubor, který se v něm nachází. Můžete tak učinit pomocí volby -exclude následované názvem souboru uzavřeným v čárkách.
Syntaxe příkazu bude:
$ rsync -a --exclude 'file_name' source_directory / destination_directory /Tady, A volba se používá pro rekurzivní synchronizaci.
Například k vyloučení souboru s názvem vzorek.txt při synchronizaci ze zdroje src_dir a dest_dir, příkaz by byl:
$ rsync -a --exclude 'vzorek.txt 'src_dir / dest_dir /
Vyloučit konkrétní adresář
Chcete-li při synchronizaci zdrojového a cílového adresáře vyloučit ze zdroje konkrétní adresář (včetně jeho podadresářů), použijte následující syntaxi:
$ rsync -a --exclude 'directory_name' src_dir / dest_dir /Například k vyloučení adresáře s názvem sampledir při synchronizaci src_dir a dest_dir, příkaz by byl:
$ rsync -a --exclude 'sampledir' src_dir / dest_dir /
Pokud chcete vyloučit obsah adresáře, ale ne samotný adresář, použijte název adresáře následovaný / *:
$ rsync -a --exclude 'sampledir / *' src_dir / dest_dir /Výše uvedený příkaz zkopíruje pouze adresář do cíle, ale ne jeho obsah.
Vyloučit více souborů nebo adresářů
Chcete-li během procesu synchronizace vyloučit více souborů nebo adresářů, zadejte každý z nich následujícím způsobem:
$ rsync -a --exclude 'file_name' --exclude 'directory1 --exclude' directory2 'src_dir / dest_dir /
Místo upřesnění -vyloučit možnost samostatně pro každý soubor nebo adresář, můžete použít jeden -vyloučit možnost zadáním všech souborů nebo adresářů ve složených závorkách.
$ rsync -a --exclude = 'název_souboru', 'adresář1', 'adresář2' src_dir / dest_dir /
Další možností, jak vyloučit více souborů nebo adresářů, je vypsat je do souboru a poté předat název souboru -vyloučit z volba:
$ rsync -a --exclude-from 'list' src_dir / dest_dir /Zde seznam obsahuje název souboru a adresáře, který chceme vyloučit. Tento příkaz synchronizuje src_dir s dest_dir, přičemž vylučuje soubory a adresáře uvedené v souboru „list“.
Vyloučte soubory nebo adresáře, které odpovídají vzoru
Pomocí rsync můžete také vyloučit soubory nebo adresáře, které odpovídají konkrétnímu vzoru. Například při synchronizaci adresáře možná budete chtít vyloučit všechny soubory končící na .txt rozšíření. Příkaz by v tomto případě byl:
$ rsync -a --exclude '*.txt 'src_dir / dest_dir /
Vyloučit soubor podle velikosti
Pomocí rsync můžete vyloučit soubory na základě jejich minimální nebo maximální velikosti. Zde nebudeme používat volbu -exclude, ale -max-size =
Zde je seznam našich src_dir který zobrazuje názvy souborů spolu s jejich velikostmi v MB.
Řekněme, že chceme synchronizovat všechny soubory do dest_dir kromě těch, jejichž velikost je větší než 100 MB. V tomto případě by to byl příkaz:
$ rsync -av --max-size = 100m src_dir / dest_dir /
Podobně k vyloučení souborů, které jsou menší než určitá velikost, řekněme 50 MB, by příkaz vypadal takto:
$ rsync -av --min-size = 50m src_dir / dest_dir /Závěr
To je vše! V tomto příspěvku jsme diskutovali různé příklady vyloučení souboru nebo adresáře v rsync. Ukázali jsme, jak vyloučit jeden soubor nebo adresář, více souborů a adresářů, soubory, které odpovídají konkrétnímu vzoru, a soubory na základě jejich minimální / maximální velikosti.