Neden dosyaları kopyalamak için dp kullanmıyoruz? (unix türevlerinde)


21

* Nix'te normal dosya kopyalamak için sadece insanların cp (örn. cp /mnt/mydevice/myfile ~/myfile) Kullandığını gördüm , fakat sonunda ddaynı şeyi ( dd if=/mnt/mydevice/myfile of=~/myfile) aynı şekilde yapan , rastladım . Bazı farklı parametrelere sahip olduklarını görüyorum (dd ince ayarlı kopyalamada daha iyi görünüyor), ancak gereksiz görünüyorlar. Bu araçlar aynı şeyi gerçekten yapıyor mu?


Aynı şeyleri sadece normal dosyalar için yaparlar. Örneğin bir dizini kopyalamayı deneyin dd.
Eddy_Em

... veya ile bir cihaz (gibi /dev/sda) cp.
jpaugh

Sorunuz cevaplandı mı?
Kruug

@Eddy_Em, Bunda yanlış olan ne?
Pacerier

Yanıtlar:


13

Asıl sorunuzu cevaplamak için, hayır, aynı şeyi yapmazlar.

dd, belirttiğiniz dosya üzerinde çalışır, bu da cihazlar arasında veya bir cihazdan bir dosyaya veri kopyalayabilmesini sağlar. Bu, özellikle cihazlar dahil olduğunda veri taşımak için kullanılır (örneğin, bir cd-rom diskinden bir iso görüntüsü oluşturun, örneğin: dd if = / dev / cdrom = mycdrom.iso) veya ham aygıtları yedekle (bazen RAC veritabanlarında kullanılır) : dd = = / dev / raw / raw1 = device_raw1)

cp, dosya içeriğini yeni bir dosyaya veya yeni bir yere kopyalamak için kullanılır. Özel olarak istediğiniz şeylerin mülkiyeti, zaman damgası ve modunun korunması (haklar) ve işlemi tekrar elde edebilmek (= dizinleri kopyalayabilmek).

Kaynak


3
Ah! Tamam, öyleyse, dd ham dosyayı kopyalarken, cp içeriği kopyalar (bu, örneğin dosya sistemini bozmadan dizinleri kopyalamanıza izin verir). Teşekkürler!
user232105,

5
@Kruug, bir şeyi kaçırmalıyım, çünkü bunun ne cpyapabileceğini hala göremiyorum dd. ddAyrıca "dosya içeriğini yeni bir dosyaya veya yeni bir yere kopyalamak" ve "sahipliğin, zaman damgasının ve modun korunması" hakkını kullanabilir mi?
Pacerier

3
@Pacerier, anlayabildiğim kadarıyla, daha genel cpolmasına rağmen daha odaklı bir yardımcı programdır dd. ddyapabileceklerinin tümünü cpyapabilir, ancak cpyapabileceklerinin sadece bazılarını ddyapabilir.
Kruug

Bu farkın açıkça yeterince açıklandığını sanmıyorum. Ne cp yapamaz ve dd? Peki ya diğer tarafa?
16'da

9

Aynı şeyi, UNLESS'ın dd, örneğin hangi baytların kopyalanacağı gibi seçeneklerden birini seekya skipda countya da ya da ddgibi baytları mutasyona geçirmek için seçenekleri kullanıyorsanız belirttiğinizi yaparlar conv. Eğer bu seçeneklerden birini kullanmıyorsanız ddve tıpkı daha sık görülen seçenekler kullanıyor if, of, bsdaha sonra her iki yardımcı programları aynı şeyi yapın: çıkışına, girdi okunur yazma hem dosyaları açmak girişi ya bitene kadar veya çıktı daha fazla bayt kabul edemez.

ddBunlar için kullanmanız gerektiğini belirten "aygıt" dosyalarını okuma ve yazma konusunda bir çok batıl inanç var , ancak bu sadece bir batıl inanç. ddfarklı bir şey yapmıyoruz, sadece dosya açıyoruz ve bayt okuyup yazıyoruz.


Bu az çok ... cihaza bağlı olarak = kaderini kullanırsanız, örneğin bazı sorunlar ortaya çıkabilir. USB flaş bellek. Çalışması için >> kaderini kullanmalı ve = xxx parametresinin kaldırmam gerektiğini keşfettim. Eğer = kaderini kullanırsam, garip problemler oluşur, çünkü atla ve iflags = skip_bytes flag ... = Kader yüzünden dikkat edilmesi ve test edilmesi gerekiyor >> kaderin düzgün gittiği bazı durumlarda doğru çalışmayabilir. Büyük dosya kaydetmek için adımlar atmak için bir komut dosyası yazdım. Tam 400 MB kopya, sdcard disk bölümünü karıştırmak için kullanılır.
Sergio Abreu,
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.