Dosyaları ve dizinleri dosya içeriği olmadan kopyalama


18

Dizin yapısını dosyalar ile ancak içerikleri olmadan kopyalamanın bir yolu var mı? Demek istediğim dosya isimleri ile aynı dizinleri istiyorum ama boş / boş bırakıyorum. Bazı programlama dillerinde birkaç örnek uygulamam var ve bunları kendi stilimle yeniden yazmak istiyorum, ancak dosyalarda organize olma yolunu koruyorum.

Yardımınız için minnettar olurum.

Yanıtlar:


36

itibaren man cp

--attributes-sadece dosya verilerini kopyalamaz, sadece öznitelikleri

Yani, içindeki tüm klasörleri ve dosyaları kopyalamak istiyorsanız somedirectory

yapmak cp -R --attributes-only somedirectory destinationdirectory


Tam da ihtiyacım olan şey bu. Çok teşekkür ederim.
dagi12

4
+1 çünkü birisinin bunu zaten uyguladığını düşünmedim - gerçekten şaşırdım.
mgarciaisaia

@mgarciaisaia Bu sabah adam sayfasını kontrol ettiğimde sadece senin gibi şaşırdım =)
Sergiy Kolodyazhnyy

10

Ubuntu'nun cpbu özelliğe sahip olması güzel , ancak kendinizi olmayan bir makinede bulmanız gerekiyorsa (BSD stili cp, örneğin OS X'in de olmaması), bunu yapmak çok kolaydır find. Burada iki katmanlı olarak (okunabilirlik için):

% cd original_dir
% find . -type d -exec mkdir -p ../copy_dir/{} \;
% find . -type f -exec touch ../copy_dir/{} \;

Eğer copy_dirzaten var, sen atlayabilirsiniz -piçin argüman mkdirberi finddizin ağacı yukarıdan aşağı erişir. Büyük işler için, sizinle komutları sonlandırma başka milisaniye kadar kapalı tıraş edebilirsiniz +yerine \;sizin eğer find(muhtemelen yapar) destekleri bunu.

Düzenleme: sembolik bağlantıları nasıl ihmal yukarıdaki komutları, üçüncü vadede ile kopyalanabilir find( do not ile bu bir sona +):

% find . -type l -exec cp -R {} ../copy_dir/{} \;
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.