Unix'te bir dizini kopyala


78

Terminal penceresini kullanarak Unix üzerindeki bir dizin yapısını, dir1'i, dir2'ye (tüm alt dizinlerle) nasıl kopyalayabilirim?


2
"cp -r / dir1 / dir2" Bu doğru mu?
Kumar Kumar

Evet doğru. Cevaplardan birini çözümünüz olarak işaretlemek isteyebilirsiniz.
qroberts

Yanıtlar:


114
cp -rf /source/path/ /destination/path/

-r = özyinelemeli, tüm alt dizinleri kopyalar

-f = Zorla, eğer mevcut bir hedef dosya açılamıyorsa, onu kaldır ve tekrar dene

Not-f Bayrağı kullanırken dikkatli olmalısınız çünkü kopyaladığınız her şeyin üzerine zorla yazacaktır. Bu öneri için @Nifle teşekkür ederiz.

Gerekirse, dizindeki tüm dosyaları kopyalamak için * joker karakterini kullanmak isteyebilirsiniz.


11
fBayrağı kullanmanız gerektiği konusunda hemfikir değilim . -f if an existing destination file cannot be opened, remove it and try again
Nifle

Şahsen ben her zaman -f bayrağını kullanırım. İyi bir uygulama değil, belki de haklısın.
qroberts

Ne yaptığını ve ne yaptığını biliyorsan sorun değil. Ancak bu durumda deneyimsiz bir kullanıcı ile uygun olmayabilir.
Nifle

@ Evet Evet, ne dediğini anlıyorum. Sadece zorlarsa, çalışma şansı, yapmamasından daha iyidir. Hepsi ne yaptığınıza ve ne yaptığını anlamanıza bağlı.
qroberts

-f<dest> üzerine <source> (<dest> içindeki şeylerin üzerine yazıldığı gibi) kopyalıyorsanız , bayrağın yararlı olduğuna ilişkin cevabınıza bir not koyarsanız (kendimden fazlasını atacağım ve cevabımı sileceğim)
Nifle

11

cp -RCevaplar doğru olsa da (BTW BSD'deki bayrağın durumu büyük olmalı, her ikisi de linux'da desteklenmeli), katran içeren eski bir teşvik vardır :

$ tar cf - . | (cd DIR; tar xf - )

Neden bunu halt ediyorsun? Çünkü katran, hem sert hem de sembolik olan bağlantıların oldukça karmaşık bir anlayışına sahiptir .

Mevcut sembolik bağları aynı metne sahip bir taneyle değiştirmek için kopyalamanızı ister misiniz? Veya aynı hedefe olan bağlantılarla (telafi edilecek göreli yolları ayarlama)? Veya hedefin bitsel kopyaları ile?

Orijinaldeki iki dosya birbirine bağlıysa, yeni yapıda verilerin iki kopyası mı olmalı yoksa bir tane mi?

Kararlar kararlar. Tar'ın mantıklı varsayılanları var, ancak bu konuda çok spesifik olmanızı sağlar.


9

severim

cp -axv source dest

Rsync bunun için başka bir iyi araçtır

rsync -va source 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.