← man/files
dd — man dd — 80×24
ugur@toprak:~/man/files$man dd
Bölüm 1 Dosyalar

dd

bir dosyayı dönüştürün ve kopyalayın

Synopsis

     dd [operands ...]

Description

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 boyutunu n bayt olarak ayarlar, ibs ve obs işlenenlerinin yerine geçer. noerror, notrunc veya sync dışı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 boyutunu n bayt olarak ayarlar. Dönüşüm kayıt boyutu, kayıt odaklı dönüşüm değerleri için gereklidir.

count=n Yalnızca n girdi bloğunu kopyalar.

files=n Sonlandırılmadan önce n girdi 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 veya noerror ve sync modları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 yerine n bayt olarak ayarlar.

if=dosya Standart girdi yerine girdiyi dosya dosyasından okur.

iflag=değer[,değer ...] Burada değ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 olmadan count, tamamen kopyalanan blok sayısı yerine girdide read(2) fonksiyonunun çağrılma sayısını sınırlar. conv=sync ile birleştirilemez.

direct Okumaların her türlü yerel önbelleğe almayı atlamasını sağlamak için girdi dosyasında F_NOCACHE ayarlar.

iseek=n Girdi dosyasında n blok konumlandırır (seek). Bu, skip=n ile eş anlamlıdır.

obs=n Çıktı blok boyutunu varsayılan 512 yerine n bayt olarak ayarlar.

of=dosya Çıktıyı standart çıktı yerine dosya dosyasına yazar. notrunc dö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ü seek ile geçilirse (bkz. oseek işleneni), çıktı dosyası o noktada kırpılır.

oflag=değer[,değer ...] Burada değer, aşağıdaki listedeki sembollerden biridir.

fsync Yazmaların eşzamanlı (synchronous) olmasını sağlamak için çıktı dosyasında O_FSYNC bayrağını ayarlar.

sync Yazmaların eşzamanlı olmasını sağlamak için çıktı dosyasında O_SYNC bayrağını ayarlar. Bu, fsync değeriyle eş anlamlıdır.

direct Yazmaların her türlü yerel önbelleğe almayı atlamasını sağlamak için çıktı dosyasında F_NOCACHE ayarlar.

oseek=n Çıktı dosyasında n blok konumlandırır (seek). Bu, seek=n ile eş anlamlıdır.

seek=n Kopyalamadan önce çıktının başlangıcından itibaren n blok konumlandırır (seek). Bant dışı aygıtlarda bir lseek(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, bant ioctl(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 itibaren n bloğu atlar (skip). Konumlandırmayı (seek) destekleyen girdilerde bir lseek(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ı saniyede n bayt ile sınırlar.

status=değer Burada değ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 ...] Burada değer, aşağıdaki listedeki sembollerden biridir.

ascii, oldascii Kayıtlar dönüştürülmeden önce karakterlerin EBCDIC'ten ASCII'ye çevrilmesi dışında unblock değeriyle aynıdır. (Bu değerler, cbs işleneni de belirtilmişse unblock anlamına gelir.) ASCII için iki dönüşüm haritası vardır. ascii değeri, AT&T System V UNIX ile uyumlu olan önerilen haritayı belirtir. oldascii değ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ğu cbs iş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ışında block değeriyle aynıdır. (Bu değerler, cbs işleneni de belirtilmişse block anlamına gelir.) EBCDIC için dört dönüşüm haritası vardır. ebcdic değeri, AT&T System V UNIX ile uyumlu olan önerilen haritayı belirtir. ibm değeri, AT&T System V UNIX ibm değeriyle uyumlu olan biraz farklı bir eşlemeyi belirtir. oldebcdic ve oldibm değerleri ise tarihi AT&T UNIX ve 4.3BSD-Reno öncesi sistemlerde kullanılan haritalardır.

fsync Çıktı dosyasını kapatmadan önce üzerinde fsync(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. sync dö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. fillchar seçeneği belirtilmişse, komut satırında sağlanan doldurma karakteri, doldurma karakterinin otomatik seçimini geçersiz kılar. sync dö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ında dd tarafından açıkça yazılmamış olan tüm blokları korur. notrunc değ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=n blok 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ğu cbs iş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” ile bitiyorsa; sayı 512, 1024 (1K), 1048576 (1M), 1073741824 (1G), 1099511627776 (1T), 1125899906842624 (1P) veya bir tamsayıdaki (integer) bayt sayısıyla çarpılır. İ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

     Bir disk sürücüsünün bozuk blok içermediğini kontrol edin:

	   dd if=/dev/ada0 of=/dev/null bs=1m

     Şu anda kurtarılabilir olan okuma hatalarının kurtarılamaz okuma hatalarına dönüşmesini önlemek için bir disk sürücüsünü yenileyin:

	   dd if=/dev/ada0 of=/dev/ada0 bs=1m

     Bir dosyadan eşlik (parity) bitini kaldırın:

	   dd if=file conv=parnone of=file.txt

     Bir dosyada (çift) eşlik hatalarını kontrol edin:

	   dd if=file conv=pareven | cmp -x - file

     Veri CD-ROM diskleri için yaygın olarak kullanılan bir biçim olan Mode-1 CD-ROM'un bir görüntüsünü (image) oluşturmak için 2048 baytlık bir blok boyutu kullanın:

	   dd if=/dev/cd0 of=filename.iso bs=2048

     Gerekirse sonunu sıfırlarla 1 MiB sınırına kadar doldurarak bir dosya sistemi görüntüsünü bir bellek kartına yazın:

	   dd if=memstick.img of=/dev/da0 bs=1m conv=noerror,sync

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.

macOS 26.4 May 19, 2021 macOS 26.4