इसी तरह, (GNU) टार का उपयोग कर:
find some/dir -type d -print |
tar --no-recursion -T- -c -p -f- |
(cd another/dir && tar -x -p -f-)
आपको वास्तव -print0
में खोज कमांड लाइन पर या -0
rsync कमांड लाइन पर तब तक ज़रूरत नहीं है जब तक कि आपके पास ऐसे फ़ाइल नाम नहीं हैं जिनमें न्यूलाइन वर्ण हैं (जो संभव है लेकिन अत्यधिक संभावना नहीं है)। टार (और rsync, और cpio) फ़ाइल नाम लाइन-बाय-लाइन पढ़ें; NULL टर्मिनेटर का उपयोग करना ज्यादातर उपयोगी होता है xargs
, जो आमतौर पर व्हाट्सएप से अलग किए गए फ़ाइल नाम को पढ़ता है (और इसलिए उनके नाम के बिना रिक्त स्थान वाली फ़ाइलों / निर्देशिकाओं को संभालता नहीं है -0
)।
rsync -a --include='*/' --exclude='*' ${source} ${destination}
।