gizli dizin dışında özyinelemeli kopyala


13

cp -rf *Gizli dizinleri (. İle başlayan dizinler) ve içeriğini hariç tutarak özyinelemeli olarak nasıl kopyalayabilirim ?

Yanıtlar:


6

Sadece her şeyi

cp -rf 

ve ardından hedefteki gizli dizinleri

find -type d -name '.*' -and -not -name '.' -print0 | xargs -0 rm -rf

Alternatif olarak, bazı gelişmiş katranınız (örn. GNU katranı) varsa, bazı desenleri hariç tutmak için katranı kullanmayı deneyebilirsiniz. Ama korkuyorum ki sadece gizli dizinleri hariç tutmak mümkün değil, ama gizli dosyaları dahil etmek.

Örneğin böyle bir şey:

tar --exclude=PATTERN -f - -c * | tar -C destination -f - -x

Btw, GNU tar dışlama stil seçenekleri hayvanat bahçesine sahiptir. Benim favorim

--exclude-vcs

30

Bazı dosyalar dışında bir dizin ağacını kopyalamak için iyi seçenekler şunlardır:

  • rsync : bu temelde cp artı bir ton dışlama olasılığıdır.

    rsync -a --exclude='.*' /source/ /destination
    
  • pax : bazı dışlama yetenekleri vardır ve POSIX'te bulunur, bu nedenle her yerde kullanılabilir olmalıdır (bazı Linux dağıtımlarının herhangi bir nedenle varsayılan kurulumlarına dahil olmaması dışında).

    cd /source && mkdir -p /destination && \
    pax -rw -pp -s '!.*/\..*!!'  . /destination
    

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.