rsync - Linux File Copying Tool
Spisu treści:
- Zanim zaczniesz
- Wyklucz określony plik
- Wyklucz konkretny katalog
- Wyklucz wiele plików lub katalogów
- Wyklucz wiele plików lub katalogów na podstawie wzorca
- Wniosek
Rsync to szybkie i wszechstronne narzędzie wiersza poleceń, które synchronizuje pliki i foldery między dwiema lokalizacjami za pomocą zdalnej powłoki.
Rsync umożliwia tworzenie kopii lustrzanych danych, tworzenie przyrostowych kopii zapasowych i kopiowanie plików między systemami. Podczas kopiowania danych możesz wykluczyć jeden lub więcej plików lub katalogów na podstawie ich nazwy lub lokalizacji.
W tym samouczku pokażemy, jak wykluczyć pliki i katalogi za pomocą rsync.
Zanim zaczniesz
Powinieneś mieć podstawową wiedzę na temat działania rsync.
W poniższych przykładach użyjemy rsync z opcją
-a
Dzięki temu rsync synchronizuje katalogi rekurencyjnie, przenosi urządzenia specjalne i blokuje oraz zachowuje dowiązania symboliczne, czasy modyfikacji, grupę, własność i uprawnienia.
Wykluczając pliki lub katalogi, musisz użyć ich względnych ścieżek do katalogu źródłowego.
Istnieją dwie opcje określania plików i katalogów, które chcesz wykluczyć:
- Z wiersza poleceń za pomocą opcji
--excludeZ pliku za pomocą opcji--exclude-from.
Wyklucz określony plik
Aby wykluczyć określony plik, przekaż ścieżkę względną do pliku do opcji
--exclude
.
W poniższym przykładzie plik
src_directory/file.txt
nie zostanie przesłany:
rsync -a --exclude 'file.txt' src_directory/ dst_directory/
Wyklucz konkretny katalog
Wykluczenie określonego katalogu jest takie samo jak wykluczenie pliku, wystarczy przekazać ścieżkę względną do katalogu do opcji
--exclude
, jak pokazano poniżej:
rsync -a --exclude 'dir1' src_directory/ dst_directory/
rsync -a --exclude 'dir1/*' src_directory/ dst_directory/
Wyklucz wiele plików lub katalogów
Aby wykluczyć wiele plików lub katalogów, po prostu określ wiele opcji
--exclude
:
rsync -a --exclude 'file1.txt' --exclude 'dir1/*' --exclude 'dir2' src_directory/ dst_directory/
rsync -a --exclude={'file1.txt', 'dir1/*', 'dir2'} src_directory/ dst_directory/
Jeśli liczba plików i / lub katalogów, które chcesz wykluczyć, jest duża, zamiast korzystać z wielu opcji
--exclude
, możesz określić pliki i katalogi, które chcesz wykluczyć w pliku i przekazać plik do
--exclude-from
opcja.
Poniższe polecenie działa dokładnie tak samo jak powyższe:
rsync -a --exclude-from='exclude-file.txt' src_directory/ dst_directory/
exclude-file.txt
Wyklucz wiele plików lub katalogów na podstawie wzorca
Za pomocą rsync można również wykluczyć pliki i katalogi na podstawie wzorca pasującego do nazwy pliku lub katalogu.
Na przykład, aby wykluczyć wszystkie pliki
.jpg
, które uruchomisz:
rsync -a --exclude '*.jpg*' src_directory/ dst_directory/
Trochę trudniej jest wykluczyć wszystkie inne pliki i katalogi oprócz tych, które pasują do określonego wzorca. Załóżmy, że chcesz wykluczyć wszystkie inne pliki i katalogi oprócz plików z rozszerzeniem
.jpg
.
Jedną z opcji jest użycie następującego polecenia:
rsync -a -m --include='*.jpg' --include='*/' --exclude='*' src_directory/ dst_directory/
W przypadku korzystania z wielu opcji włączania / wyłączania obowiązuje pierwsza reguła dopasowania.
-
--include='*.jpg'- Najpierw uwzględniamy wszystkie pliki.jpg.--include='*/'- Następnie uwzględniamy wszystkie katalogi w katalogusrc_directory. Bez tego rsync skopiuje tylko pliki*.jpgkatalogu najwyższego poziomu.-m- Usuwa puste katalogi.
Inną opcją byłoby przesłanie danych wyjściowych polecenia find do rsync:
find src_directory/ -name "*.jpg" -printf %P\\0\\n | rsync -a --files-from=- src_directory/ dst_directory/
-
-printf %P\\0\\n- usuniesrc_directory/ze ścieżki do pliku.--files-from=-- oznacza, że zawierają tylko pliki ze standardowego wejścia (pliki przekazane z polecenia find).
Wniosek
W tym samouczku nauczyłeś się, jak wykluczać pliki i katalogi podczas przesyłania danych za pomocą Rsync. Jest wiele więcej informacji na temat Rsync na stronie Podręcznika użytkownika Rsync.
Jak skopiować pliki i katalogi w systemie Linux
Kopiowanie plików i katalogów jest jednym z najczęstszych zadań wykonywanych podczas pracy w wierszu poleceń. W Linuksie istnieje kilka poleceń do kopiowania plików, przy czym najczęściej używanymi narzędziami są cp i rsync.
Jak usunąć pliki i katalogi za pomocą wiersza poleceń systemu Linux
W tym samouczku pokażemy, jak używać polecenia rm do usuwania plików i katalogów za pomocą przykładów i objaśnień najczęstszych opcji rm.
Jak przenosić pliki i katalogi w systemie Linux (polecenie mv)
Przenoszenie plików i katalogów jest jednym z najbardziej podstawowych zadań, które często trzeba wykonywać w systemie Linux. W tym samouczku wyjaśnimy, jak używać polecenia mv do przenoszenia plików i katalogów.







