Tüm çıkış cihazı, boyutu geçtiğiniz blok boyutunun katı olsun veya olmasın silinir dd.
notruncBir aygıt dosyası kesiliyor hiçbir etkisi yoktur çünkü çıktı, bir aygıt dosyası olduğunda bayrak etkisi yoktur. Çıktı normal bir dosya olsaydı, çıktı dosyasının yazılmadan önce kısaltılmaması etkisi olurdu, bu da bazı dosya sistemlerinde eski verilerin üzerine yazıldığı anlamına gelir (yeni veri blokları yazmak ve geri kalanını ekli bırakmamak yerine), ancak bu özellik tüm dosya sistemleri tarafından garanti edilmediğinden ve ayrıca komut sadece dosyanın üzerine yazmaz, aynı zamanda çıktı diski doldurulana kadar yazmaya devam eder (veya başka bir hata oluşursa).
ddDoğru olarak kullanıp kullanmadığınızı kullanmak ve endişe etmek yerine (olduğu gibi, bu özel durumda çalışır, ancak karmaşıktır ve bazen işe yaramaz ), sadece kullanıncat .
cat /dev/zero >/dev/sdX
Web üzerindeki yaygın inanca rağmen, ddbir diske yazmak için bir şekilde daha uygun hale getiren kesinlikle sihir yoktur . Sihir /devdosyalarda. Böyle herhangi bir modern olarak ikili veri ile başa çıkabilir Herhangi alet catveya headaynı işi yapabilir, ddaşağıdaki gibi bayraklarını geçen sürece seekveya skip.
Paylaşılan ddve catbaşarılı bir işlem sırasında oluşan bir sorunun "Aygıtta yer kalmadı" (ENOSPC) hatasıyla karşılaşacaklarını unutmayın. Bunu bir komut dosyasına koyarsanız, hatanın ENOSPC olup olmadığını kontrol etmeniz veya farklı bir yöntem kullanmanız gerekir. Daha güvenilir bir yöntem önce cihazın boyutunu belirlemek (örneğin /proc/partitionsLinux altında kullanmak ), daha sonra gibi bir araçla tam olarak doğru bayt sayısını yazmaktır head.
size=$(</proc/partitions awk '$4 == "sdX" {print $3}')
head -c "${size}k" /dev/zero >/dev/sdX