Dizin ağacı boş dizinler olmadan kopyalansın mı?


17

Aşağıdaki ağacım var

# upper letters = directory
# lower letters = files
A
|-- B
|-- C
    |-- D
    |-- e <= file
|-- F
    |-- G

Bu ağacı başka bir hedefe kopyalamam gerekiyor, tüm boş dizinleri yinelemeli. Böylece hedef şöyle görünür:

C
|-- e

Bunu unix, rsync, vb. İle nasıl yaparsınız?

Yanıtlar:


29

Tabii dakikalar sonra kolay bir yöntem keşfettim. rsyncbir --prune-empty-dirsseçeneği var.


1

Bu sorunun çeşitli çözümleri vardır ( Bu web sayfasından alınmıştır ):

Bu seçenek find komutuyla mkdir komutunu kullanır. Bu yöntem ayrıca komutu yürütürken kaynak klasörün içinde olmanızı gerektirir.

bash$ cd /path/to/source && find . -type d -exec mkdir -p /path/to/dest/{} ;

Find ve cpio kullanma

bash$ find /path/to/source -type d | cpio -pd /path/to/dest/

Rsync kullanma

bash$ rsync -a --include '*/' --exclude '*' /path/to/source /path/to/dest

VEYA

bash$ rysnc -a -f"+ */" -f"- *" /path/to/source /path/to/dest

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.