Android

Jak vyloučit soubory a adresáře pomocí rsync

Zálohování souborů v systému Windows 8.1 na počítačích HP

Zálohování souborů v systému Windows 8.1 na počítačích HP

Obsah:

Anonim

Rsync je rychlý a univerzální obslužný program příkazového řádku, který synchronizuje soubory a složky mezi dvěma umístěními přes vzdálený shell.

S Rsync můžete zrcadlit data, vytvářet přírůstkové zálohy a kopírovat soubory mezi systémy. Při kopírování dat můžete chtít vyloučit jeden nebo více souborů nebo adresářů na základě jejich názvu nebo umístění.

V tomto tutoriálu vám ukážeme, jak vyloučit soubory a adresáře s rsync.

Než začnete

Měli byste mít základní znalosti o tom, jak rsync funguje.

V příkladech níže použijeme rsync s volbou -a To rsync řekne, aby synchronizoval adresáře rekurzivně, přenášel speciální a bloková zařízení a zachoval symbolické odkazy, časy úprav, skupinu, vlastnictví a oprávnění.

Při vyloučení souborů nebo adresářů musíte použít jejich relativní cesty ke zdrojovému adresáři.

Existují dvě možnosti určení souborů a adresářů, které chcete vyloučit:

  • Z příkazového řádku pomocí volby --exclude souboru pomocí volby --exclude-from .

Vyloučit konkrétní soubor

Chcete-li vyloučit konkrétní soubor, předejte relativní cestu k souboru do volby --exclude .

V následujícím příkladu nebude soubor src_directory/file.txt přenesen:

rsync -a --exclude 'file.txt' src_directory/ dst_directory/

Vyloučit konkrétní adresář

Vyloučení určitého adresáře je stejné jako vyloučení souboru, stačí předat relativní cestu k adresáři do možnosti --exclude jak je ukázáno níže:

rsync -a --exclude 'dir1' src_directory/ dst_directory/

rsync -a --exclude 'dir1/*' src_directory/ dst_directory/

Vyloučit více souborů nebo adresářů

Chcete-li vyloučit více souborů nebo adresářů, jednoduše zadejte více - vyloučit možnosti:

rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/

rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/

Pokud je počet souborů a adresářů, které chcete vyloučit, velký, můžete namísto použití více možností --exclude zadat soubory a adresáře, které chcete v souboru vyloučit, a předat soubor - - exclude --exclude-from volba.

Příkaz níže dělá úplně stejný příkaz jako výše:

rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/ exclude-file.txt

file1.txt dir1/* dir2

Vyloučit více souborů nebo adresářů na základě vzoru

S rsync můžete také vyloučit soubory a adresáře na základě vzoru, který odpovídá názvu souboru nebo adresáře.

Chcete-li například vyloučit všechny spuštěné soubory .jpg :

rsync -a --exclude '*.jpg*' src_directory/ dst_directory/

Vyloučit všechny ostatní soubory a adresáře s výjimkou těch, které odpovídají určitému vzoru, je trochu složitější. Řekněme, že chcete vyloučit všechny ostatní soubory a adresáře s výjimkou souborů končících na .jpg .

Jednou z možností je použít následující příkaz:

rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/

Při použití více možností zahrnutí / vyloučení platí první pravidlo shody.

  • --include='*.jpg' - Nejprve .jpg všechny soubory .jpg . --include='*/' - Pak src_directory všechny adresáře uvnitř adresáře src_directory . Bez tohoto rsync budou zkopírovány pouze soubory *.jpg v adresáři nejvyšší úrovně. -m - Odstraní prázdné adresáře.

Další možností by bylo přenést výstup příkazu find do rsync:

find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/

  • -printf %P\\0\\n - odstraní src_directory/ z cesty k souboru. --files-from=- - znamená zahrnout pouze soubory ze standardního vstupu (soubory předané příkazem find).

Závěr

V tomto tutoriálu jste se naučili, jak při přenosu dat pomocí Rsync vyloučit soubory a adresáře. O stránce Rsync se dozvíte mnohem více na stránce Rsync User's Manual.

terminál rsync