Özet
dd [operands ...]
Açıklama
dd aracı, standart girdiyi standart çıktıya kopyalar. Girdi verileri 512 baytlık bloklar halinde okunur ve yazılır. Girdi okumaları kısa kalırsa, çıktı bloğunu oluşturmak için birden fazla okumadan elde edilen girdi bir araya getirilir (toplulaştırılır). İşlem tamamlandığında dd; tamamlanmış ve kısmi girdi ve çıktı bloklarının sayısını ve kırpılmış girdi kayıtlarını standart hata çıktısına görüntüler.
Aşağıdaki işlenenler (operands) mevcuttur:
bs=n: Hem girdi hem de çıktı blok boyutununbayt olarak ayarlar,ibsveobsişlenenlerinin yerine geçer.noerror,notruncveyasyncdışında hiçbir dönüşüm değeri belirtilmemişse, her girdi bloğu kısa blokların herhangi bir birleştirmesi yapılmadan tek bir blok olarak çıktıya kopyalanır.cbs=n: Dönüşüm kayıt boyutununbayt olarak ayarlar. Dönüşüm kayıt boyutu, kayıt odaklı dönüşüm değerleri için gereklidir.count=n: Yalnızcangirdi bloğunu kopyalar.files=n: Sonlandırılmadan öncengirdi dosyasını kopyalar. Bu işlenen yalnızca girdi aygıtı bir manyetik bant (tape) olduğunda geçerlidir.fillchar=c: Dönüşüm modunda veyanoerrorvesyncmodlarının kullanımı nedeniyle bir bloğu doldururken (padding), boşluk veya NUL kullanmak yerine belirtilen ASCII karakteriyle doldurun.ibs=n: Girdi blok boyutunu varsayılan 512 yerinenbayt olarak ayarlar.if=dosya: Standart girdi yerine girdiyidosyadosyasından okur.iflag=değer[,değer ...]: Buradadeğer, aşağıdaki listedeki sembollerden biridir:fullblock: Girdi dosyasından okuma tam bir blok elde etmeyebilir. Bir okuma kısa döndüğünde, bloğu doldurmak için okumaya devam edin. Bu bayrak olmadancount, tamamen kopyalanan blok sayısı yerine girdideread(2)fonksiyonunun çağrılma sayısını sınırlar.conv=syncile birleştirilemez.direct: Okumaların her türlü yerel önbelleğe almayı atlamasını sağlamak için girdi dosyasındaF_NOCACHEayarlar.
iseek=n: Girdi dosyasındanblok konumlandırır (seek). Bu,skip=nile eş anlamlıdır.obs=n: Çıktı blok boyutunu varsayılan 512 yerinenbayt olarak ayarlar.of=dosya: Çıktıyı standart çıktı yerinedosyadosyasına yazar.notruncdönüşüm değeri belirtilmediği sürece her normal çıktı dosyası kırpılır (truncated). Çıktı dosyasının başlangıçtaki bir bölümüseekile geçilirse (bkz.oseekişleneni), çıktı dosyası o noktada kırpılır.oflag=değer[,değer ...]: Buradadeğer, aşağıdaki listedeki sembollerden biridir:fsync: Yazmaların eşzamanlı (synchronous) olmasını sağlamak için çıktı dosyasındaO_FSYNCbayrağını ayarlar.sync: Yazmaların eşzamanlı olmasını sağlamak için çıktı dosyasındaO_SYNCbayrağını ayarlar. Bu,fsyncdeğeriyle eş anlamlıdır.direct: Yazmaların her türlü yerel önbelleğe almayı atlamasını sağlamak için çıktı dosyasındaF_NOCACHEayarlar.
oseek=n: Çıktı dosyasındanblok konumlandırır (seek). Bu,seek=nile eş anlamlıdır.seek=n: Kopyalamadan önce çıktının başlangıcından itibarennblok konumlandırır (seek). Bant dışı aygıtlarda birlseek(2)işlemi kullanılır. Aksi takdirde, mevcut bloklar okunur ve veriler atılır. Kullanıcının bant için okuma izni yoksa, bantioctl(2)fonksiyon çağrıları kullanılarak konumlandırılır. Konumlandırma işlemi dosya sonunu geçerse, mevcut dosya sonundan belirtilen kaydırma (offset) değerine kadar olan boşluk, NUL baytlarından oluşan bloklarla doldurulur.skip=n: Kopyalamadan önce girdinin başlangıcından itibarennbloğu atlar (skip). Konumlandırmayı (seek) destekleyen girdilerde birlseek(2)işlemi kullanılır. Aksi takdirde, girdi verileri okunur ve atılır. Borular (pipes) için doğru sayıda bayt okunur. Diğer tüm aygıtlar için, okunan bloğun kısmi veya eksiksiz olması ayırt edilmeksizin doğru sayıda blok okunur.speed=n: Kopyalama hızını saniyedenbayt ile sınırlar.status=değer: Buradadeğer, aşağıdaki listedeki sembollerden biridir:noxfer: Durum çıktısının son satırı olarak aktarım istatistiklerini yazdırmaz.none: Durum çıktısını yazdırmaz. Hata iletileri gösterilir; bilgilendirici iletiler gösterilmez.progress: Saniyede bir kez temel aktarım istatistiklerini yazdırır.
conv=değer[,değer ...]: Buradadeğer, aşağıdaki listedeki sembollerden biridir:ascii/oldascii: Kayıtlar dönüştürülmeden önce karakterlerin EBCDIC'ten ASCII'ye çevrilmesi dışındaunblockdeğeriyle aynıdır. (Bu değerler,cbsişleneni de belirtilmişseunblockanlamına gelir.) ASCII için iki dönüşüm haritası vardır.asciideğeri, AT&T System V UNIX ile uyumlu olan önerilen haritayı belirtir.oldasciideğeri ise tarihi AT&T UNIX ve 4.3BSD-Reno öncesi sistemlerde kullanılan haritayı belirtir.block: Girdiyi, girdi ve çıktı blok sınırlarından bağımsız olarak, yeni satır (newline) veya dosya sonu ile sonlandırılmış değişken uzunluklu bir kayıt dizisi olarak ele alır. Sondaki her yeni satır karakteri atılır. Her girdi kaydı, uzunluğucbsişleneni tarafından belirtilen sabit uzunluklu bir çıktı kaydına dönüştürülür. Dönüşüm kayıt boyutundan daha kısa olan girdi kayıtları boşluklarla doldurulur. Dönüşüm kayıt boyutundan daha uzun olan girdi kayıtları kırpılır. Varsa, kırpılan girdi kayıtlarının sayısı, kopyalama tamamlandığında standart hata çıktısına bildirilir.ebcdic/ibm/oldebcdic/oldibm: Kayıtlar dönüştürüldükten sonra karakterlerin ASCII'den EBCDIC'e çevrilmesi dışındablockdeğeriyle aynıdır. (Bu değerler,cbsişleneni de belirtilmişseblockanlamına gelir.) EBCDIC için dört dönüşüm haritası vardır.ebcdicdeğeri, AT&T System V UNIX ile uyumlu olan önerilen haritayı belirtir.ibmdeğeri, AT&T System V UNIXibmdeğeriyle uyumlu olan biraz farklı bir eşlemeyi belirtir.oldebcdicveoldibmdeğerleri ise tarihi AT&T UNIX ve 4.3BSD-Reno öncesi sistemlerde kullanılan haritalardır.fsync: Çıktı dosyasını kapatmadan önce üzerindefsync(2)işlemi gerçekleştirir.lcase: Büyük harfleri küçük harfe dönüştürür.pareven/parnone/parodd/parset: Çıktı verilerini belirtilen eşlik bitiyle (parity) verir. EBCDIC'ten ASCII'ye dönüşümler de belirtilmedikçe, girdideki eşlik biti ayıklanır.noerror: Bir girdi hatasında işlemeyi durdurmaz. Bir girdi hatası oluştuğunda, standart tamamlanma iletisiyle aynı biçimde bir hata teşhis iletisi ve ardından mevcut girdi ve çıktı blok sayıları standart hata çıktısına yazılacaktır.syncdönüşümü de belirtilmişse, eksik girdi verileri NUL baytlarıyla (veya blok odaklı bir dönüşüm değeri belirtilmişse boşluklarla) değiştirilir ve normal bir girdi ara belleği olarak işlenir.fillcharseçeneği belirtilmişse, komut satırında sağlanan doldurma karakteri, doldurma karakterinin otomatik seçimini geçersiz kılar.syncdönüşümü belirtilmemişse, girdi bloğu çıktıdan çıkarılır. Bant veya boru olmayan girdi dosyalarında, dosya konumu (offset)lseek(2)kullanılarak hatanın oluştuğu bloğu geçecek şekilde konumlandırılır.notrunc: Çıktı dosyasını kırpmaz (truncate). Bu, çıktı dosyasındaddtarafından açıkça yazılmamış olan tüm blokları korur.notruncdeğeri bantlar için desteklenmez.osync: Son çıktı bloğunu tam çıktı blok boyutuna kadar doldurur. Girdi dosyası dönüşümden sonra çıktı blok boyutunun katı değilse, bu dönüşüm, düzenli boyutta blokların yazılmasını gerektiren aygıtlarda kullanılmak üzere son çıktı bloğunu önceki bloklarla aynı boyutta olmaya zorlar. Bu seçenek,bs=nblok boyutu belirtiminin kullanımıyla uyumsuzdur.sparse: Bir veya daha fazla çıktı bloğu yalnızca NUL baytlarından oluşacaksa, bunları NUL'larla doldurmak yerine çıktı dosyasını gereken miktarda konumlandırmaya (seek) çalışır; bu da seyrek bir dosya (sparse file) elde edilmesini sağlar.swab: Her girdi baytı çiftini birbiriyle değiştirir (swap). Bir girdi ara belleği tek sayıda bayta sahipse, değiştirme sırasında son bayt yoksayılır.sync: Her girdi bloğunu girdi ara belleği boyutuna kadar doldurur. Blok odaklı bir dönüşüm değeri belirtilmişse dolgu baytları için boşluklar kullanılır, aksi takdirde NUL baytları kullanılır.ucase: Küçük harfleri büyük harfe dönüştürür.unblock: Girdiyi, girdi ve çıktı blok sınırlarından bağımsız olarak, sabit uzunluklu kayıt dizisi olarak ele alır. Girdi kayıtlarının uzunluğucbsişleneni tarafından belirtilir. Sondaki tüm boşluk karakterleri atılır ve bir yeni satır (newline) karakteri eklenir.
Boyutların veya hızın belirtildiği yerlerde, ondalık (decimal), sekizlik (octal) veya onaltılık (hexadecimal) bir bayt sayısı beklenir. Sayı sırasıyla b, k, m, g, t, p veya w harflerinden biriyle bitiyorsa, sayı aşağıdaki çarpanlarla çarpılır:
| Ek | Çarpan | Açıklama |
|---|---|---|
b |
512 | 512 baytlık blok |
k |
1,024 | Kilobayt (1 KiB) |
m |
1,048,576 | Megabayt (1 MiB) |
g |
1,073,741,824 | Gigabayt (1 GiB) |
t |
1,099,511,627,776 | Terabayt (1 TiB) |
p |
1,125,899,906,842,624 | Petabayt (1 PiB) |
w |
Tamsayı Boyutu | Bir tamsayıdaki (integer) bayt sayısı |
İki veya daha fazla sayı, bir çarpımı belirtmek için bir x ile ayrılabilir.
İşlem tamamlandığında dd; tamamlanmış ve kısmi girdi ve çıktı bloklarının sayısını, kırpılmış girdi kayıtlarını ve tek uzunluklu bayt değiştirme (byte-swapping) bloklarını standart hata çıktısına görüntüler. Kısmi girdi bloğu, girdi blok boyutundan daha azının okunduğu bloktur. Kısmi çıktı bloğu, çıktı blok boyutundan daha azının yazıldığı bloktur. Bant aygıtlarına yapılan kısmi çıktı blokları ölümcül hatalar olarak kabul edilir. Aksi takdirde bloğun geri kalanı yazılır. Karakter aygıtlarına yapılan kısmi çıktı blokları bir uyarı mesajı üretecektir. Kırpılmış girdi bloğu, değişken uzunluklu kayıt odaklı bir dönüşüm değerinin belirtildiği ve girdi satırının dönüşüm kaydına sığmayacak kadar uzun olduğu veya yeni satırla sonlandırılmadığı bir durumdur.
Normalde, girdi veya dönüşümden ya da her ikisinden kaynaklanan veriler, belirtilen boyuttaki çıktı bloklarında bir araya getirilir (toplulaştırılır). Girdinin sonuna ulaşıldıktan sonra, kalan tüm çıktılar bir blok olarak yazılır. Bu durum, son çıktı bloğunun çıktı blok boyutundan daha kısa olabileceği anlamına gelir.
Eğer dd bir SIGINFO (stty(1) kılavuz sayfasındaki status argümanına bakın) sinyali alırsa, geçerli girdi ve çıktı blok sayıları standart tamamlanma iletisiyle aynı biçimde standart hata çıktısına yazılacaktır. Eğer dd bir SIGINT sinyali alırsa, geçerli girdi ve çıktı blok sayıları standart tamamlanma iletisiyle aynı biçimde standart hata çıktısına yazılacak ve dd çıkacaktır.
Çıkış Durumu
dd aracı başarı durumunda 0 ve bir hata oluşursa >0 ile çıkar.
Örnekler
Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:
Bir disk sürücüsünün bozuk blok içermediğini kontrol etme:
dd if=/dev/ada0 of=/dev/null bs=1mTüm diski okur ve okuma hatalarını raporlamak için çıktıları
/dev/null'a atar.Bir disk sürücüsünü yenileme (kurtarılabilir hataları önlemek için):
dd if=/dev/ada0 of=/dev/ada0 bs=1mOkunabilir olan verileri okuyup aynı yerlerine yazarak zayıflayan sektörleri canlandırır.
Bir dosyadan eşlik (parity) bitini kaldırma:
dd if=file conv=parnone of=file.txtfiledosyasındaki eşlik bitlerini kaldırarak çıktıyıfile.txtolarak kaydeder.Bir dosyada (çift) eşlik hatalarını kontrol etme:
dd if=file conv=pareven | cmp -x - fileEşlik bitlerini kontrol eder ve orijinal dosyayla karşılaştırır.
CD-ROM görüntüsü (ISO) oluşturma:
dd if=/dev/cd0 of=filename.iso bs=2048Mode-1 CD-ROM'lar için yaygın olarak kullanılan 2048 baytlık blok boyutuyla görüntüyü oluşturur.
Bellek kartına imaj yazma (hata es geçme ve sıfırla doldurma ile):
dd if=memstick.img of=/dev/da0 bs=1m conv=noerror,syncGerekirse sonunu sıfırlarla 1 MiB sınırına kadar doldurarak dosya sistemi görüntüsünü bir bellek kartına yazar.
Ayrıca Bkz.
cp(1), tr(1)
Standartlar
dd aracının IEEE Std 1003.2 (“POSIX.2”) standardının bir üst kümesi olması beklenmektedir. files ve status işlenenleri ile ascii, ebcdic, ibm, oldascii, oldebcdic ve oldibm değerleri POSIX standardına yönelik uzantılardır.
Tarihçe
Bir dd komutu Version 5 AT&T UNIX sürümünde ortaya çıkmıştır.