Skip to main content
  1. Posts/

Rsync dengan maxdepth subfolder

·2 mins·
linux linux
Table of Contents

Secara default, rsync akan melakukan rekurensi ke seluruh subfolder tanpa batas kedalaman ketika opsi -r (recursive) digunakan. Namun, dalam banyak kasus, pengguna hanya ingin menyalin file dan folder sampai tingkat kedalaman tertentu, misal hanya folder utama dan satu atau dua tingkat subfolder saja.

Sayangnya, rsync tidak menyediakan opsi --maxdepth secara langsung. Oleh karena itu, diperlukan teknik khusus untuk mengatur kedalaman sinkronasi.

Implementasi Rsync Maxdepth
#

1. Menggunakan Opsi --exclude
#

Untuk menyinkronkan file hingga kedalaman 2 (file di dalam folder utama dan satu tingkat subfolder), kita dapat memanfaatkan opsi --exclude pada rsync.

Contohnya:

rsync -r --exclude='/*/*/' source/ target/

Penjelasan:

  • -r : menyalin direktori secara rekursif
  • --exclude='/*/*/' : mengecualikan direktori pada kedalaman lebih dari 2, sehingga rsync tidak masuk ke subfolder tingkat berikutnya

Dengan perintah tersebut, rsync akan menyalin file dan folder seperti berikut:

target/
├── subfolder 1
│   └── wanted with depth 2.txt
├── subfolder 2
│   └── wanted with depth 2.txt
└── wanted with depth 1.txt

Artinya:

  • File pada direktori utama (depth 1) tetap disalin
  • File di dalam subfolder tingkat pertama (depth 2) juga disalin
  • Subfolder yang lebih dalam dari itu tidak akan diproses

2. Menggunakan Opsi --include
#

Pendekatan --include cocok jika:

  • Struktur folder kompleks
  • Ingin kontrol yang lebih eksplisit
  • Ingin memastikan hanya file tertentu yang ikut

Contohnya:

rsync -r \
  --include='*/' \
  --include='*/*' \
  --exclude='*' \
  source/ target/

3. Menggunakan Kombinasi Find dan Rsync
#

Alternatif lain adalah menggunakan perintah find dengan opsi -maxdepth untuk menghasilkan daftar file/folder yang ingin disalin, lalu mengoper daftar tersebut ke rsync menggunakan opsi –files-from.

Contohnya:

find source/ -maxdepth 2 -type f > filelist.txt
rsync -av --files-from=filelist.txt / target/

Related

Cara scroll up dan down GNU Screen Linux
·1 min
linux linux
Setting Sudo Tanpa Password di Linux
·1 min
linux linux
Backup dan Restore Partisi table di Linux
·3 mins
linux linux
Setting Network Ubuntu dengan Netplan
·1 min
ubuntu ubuntu linux
Cara membuat Logical Volume (LVM)
·3 mins
lvm linux lvm
Cek dan Repair FAT filesystem Linux
·1 min
linux