Cp ile nasıl kopyalanır ve dahili dosyalar veya dizinler nasıl hariç tutulur (rsync –exclude ile eşdeğerdir)

Bir klasörü başka bir konuma kopyalamak için bir komuttan bahsetmenizi isteseydim, hemen hemen herkes cp.

Şimdi, size, ek olarak, bu klasörün 1 dosya dışında tüm içeriğini kopyalamanız gerektiğini söylersem, birçoğu düşünürdü ve diğerleri rsync, sonra parametre ile –Dışla X dosyasını veya klasörünü hariç tutabilir ve kopyalayamazsınız. Ama ... cp'nin bunu yapmanıza da izin verdiğini biliyor muydunuz? ... O_O … Evet arkadaşlar, cp kendi "dışlama" hehe vardır.

Örneğin, klasörümüz var isos kapsamak: ubuntu.iso, debian.iso y arlinux.iso :

Ve diğer klasöre kopyalamak istediğimiz oluyor (dağıtımlar-deb, boş olan) dosya debian.iso y ubuntu.isoyani archlinux.iso hariç tümü

Bunun için bir dosyayı ve ardından başka bir dosyayı manuel olarak kopyalayabilirdik, ancak sistemin bize sunduğu seçenekleri kullanmak çok daha akıllıca, değil mi? … 😀… örneğin, bunu sadece yapmak için:

cp isos/!(archlinux.iso) distros-deb/

Ve bu, isos dizininde bulunan HER ŞEYİ distros-deb'e kopyalamak için yeterlidir, archlinux.iso hariç her şeyi 😉

Ama sadece bu 3 dosyaya sahip olmadığımızı, aynı zamanda fedora.iso ve chakra.iso'ya sahip olduğumuzu varsayalım ... ve aynısını yapmak istiyoruz, fedora.iso ve chakra.iso kopyalarından da çıkarılsın, hadi nasıl yapılacağını görün:

cp isos/!(archlinux.iso|fedora.iso|chakra.iso) distros-deb/

Gördüğünüz gibi, birkaç dosya veya klasör hariç tutulabilir, bunları yalnızca bir boru ile ayırıyoruz (|) ve sorun çözüldü 😀

Bununla cp'nin her şey için rsync'den daha iyi olduğu anlamına gelmiyorum ... ama her ikisi de mükemmel araçlar, örneğin ... parametreyi biliyor muydunuz? -u de cp? ... hehe, elbette değil 😉

Ekleyecek başka bir şey yok ... bu ilginç bir ipucu değil mi? 😀

selamlar


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   alay etmek dijo

    Ben bu yöntemi bilmiyordum, hep yeni bir şeyler öğreniyorsun.
    Mükemmel ipucu, teşekkürler.

    1.    KZKG ^ Gaara dijo

      teşekkürler

  2.   Croto dijo

    Bahşiş çok iyi, bilmiyordum! Sadece Arch ve Fedora kullanıcılarına iso'larının hehe'lerini neden hariç tuttuğunuzu açıklamak kalır.

    1.    KZKG ^ Gaara dijo

      JAJAJAJAJAJA Arch ve Fedora ISO'larını koymadım çünkü örnek sadece Deb dağıtımlarını kopyalamaya çalıştı… HAHAHAHAHA.

  3.   Hexborg dijo

    Burada birkaç noktaya değinmemiz gerekiyor. Birincisi, bu yalnızca bash'ın extglob seçeneği etkinleştirilmişse çalışır. Değilse, şu komutla etkinleştirilir:

    shopt -s extglob

    Her zaman etkinleştirilmesi için .bashrc'ye konulabilir.

    Diğer nokta ise bu numara cp komutunun bir seçeneği değil, ama bash seviyesinde çalışıyor. Bu, herhangi bir komutla kullanılabileceği anlamına gelir. Sadece cp ile değil. Testi yazarak yapabilirsiniz:

    echo Dosyaları: isos /! (archlinux.iso | fedora.iso | chakra.iso)

    Aksi takdirde çok faydalı bir numaradır. -U seçeneğiyle birlikte, zaman zaman yararlı bulduğum cp.

    1.    daniel rojas dijo

      Elbette, bu normal bir ifade

      1.    Hexborg dijo

        Aslında genişletilmiş bir kalıptır. Normal ifade başka bir şeydir, ama ona benziyor. 🙂

    2.    KZKG ^ Gaara dijo

      Evet, cp'deki -u gerçekten ilginç. Büyük bir rsync hayranı olduğumu kabul ediyorum ... ama bilmiyorum, zayıf cp hahaha'ya bir bağlılığım var.

      Shopt'u etkinleştirme hakkında bilmiyordum, bunun otomatik olarak çalıştığını varsaydım, bahşiş için teşekkürler.

      Ve evet, bunun Bash ile cp'den daha fazla ilgisi olduğundan şüpheleniyordum, ancak henüz bir rm veya kedi veya benzeri bir şey yapmayı denemedim :)

      Yorum için teşekkürler, gerçekten yapıyorum 😀

      1.    Hexborg dijo

        Benim üzerime düşeni yapmak bir zevk. 🙂

        1.    KZKG ^ Gaara dijo

          Aslında, her zaman normal ifadeyi öğrenmekle ilgilenmişimdir ... Heyecanlanıyor ve bununla ilgili yeni başlayanlar için bir gönderi yapıyor musunuz? 😀

          1.    Hexborg dijo

            LOL !! Zaten bana sahipsin. 🙂 Yorum yapmadan ne kadar mutlu olduğum için… 🙂

            Gerçek şu ki, beni arıyor. 🙂 Ama yine de biraz düşünmem gerekiyor. Açıklaması zor görünüyor.

            1.    KZKG ^ Gaara dijo

              hahahahaha hiçbir şey merak etmeyin, hala ahahahaha öğrendiğinizi söyleyip duruyorsunuz, önemli olan paylaşmaktır 😀


  4.   Tufadorin dijo

    Çok iyi bir ipucu Yeni bir şey öğrenmeden asla yatağa gitmeyeceksiniz.

    1.    KZKG ^ Gaara dijo

      Kesinlikle ve en iyisi de paylaşımlara bıraktığınız yorumlarla çok şey öğreniyorum, her gün garip şeyler öğrenmeyi seviyorum HAHAHA.

  5.   Giskard dijo

    İyi numara. Onu tanımıyordum 🙂

    1.    KZKG ^ Gaara dijo

      Bir zevk mi?

  6.   @Hayalhanemersin dijo

    Ama isos koyduğunuzda debian.iso ubuntu.iso /! (Vb.) Koymak mı istiyorsunuz? Hayır

  7.   Heber dijo

    Gerçekten de çok ilginç bir ipucu olduğu ortaya çıktı. Sadece makalenin kendisi nedeniyle değil, aynı zamanda yorumların katma değeri nedeniyle de.
    Güzel <º Linux topluluğu

  8.   KUYU MARTHA dijo

    Yardımınızın bana hiçbir faydası olmadı, bir örnek vermelisiniz ki öğrenciler muhteşem tekniğinizi daha iyi anlayabilsin.
    Zaman ayırdığınız için teşekkürler, bu sayfayı her zaman kalbimde hatırlayacağım

  9.   felipe016 dijo

    dizinleri atladığınızı söylüyorsunuz, ancak örneklerde yalnızca dosyaları atlıyorsunuz, belirli bir dizini nasıl atlayacağınızı biliyor musunuz? Saygılarımızla.