Dosyaların Dönüştürülmesi - dd komutu

Başlatan Suat, 25 Nisan 2016 - 13:19:06

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

Suat

Dosyaların farklı biçimlere dönüştürülmesi gerektiğinde dd komutu kullanılır. Blok yapısının değiştirilmesinde, ASCII ve EBCDIC dosyaların dönüştürülmesinde ve dosya içindeki harflerin büyük veya küçük harflere çevrilmesinde bu komut tercih edilmelidir. Komut,

           dd seçenek=değer...

biçiminde tanımlanır. Seçenekler aşağıda açıklanmaktadır.

Seçenek                                   Açıklama

if=dosya           Giriş dosyası
of=dosya          Çıkış dosyası
ibs=n               Giriş dosyasının blok boyu. Belirtilmez ise 512 bayt olduğu kabul edilir.
obs=n              Çıkış dosyasının blok boyu. Belirtilmez ise 512 bayt olduğu kabul edilir.
bs=n                Hem giriş hem çıkış dosyasının blok uzunluğu
cbs=n              Dönüşüm işleminde kullanılan ara belleğin boyutu. Bu seçenek ascii veya ebcdic seçenekleriyle birlikte kullanılabilir.
skip=n             Çıkış dosyası yaratılırken giriş dosyasından n bloğun atlanması sağlanır.
seek=n            Kopyalama öncesinde çıkış dosyasının başından itibaren n bloğu arar.
count=n           Sadece n giriş bloğunu kopyalar.
conv=ascii        EBCDIC dosyası ASCII dosyaya dönüştürür.   
conv=ebcdic     ASCII dosyayı EBCDIC dosyasına dönüştürür.
conv=lcase       Büyük harfleri küçük harflere dönüştürür.
conv=ucase      Küyük harfleri büyük harflere dönüştürür.
conv=noerror    Hata durumunda dönüşüm işlemini durdurmaz.

Örnek

/usr/acct/personel dizininde yer alan PERFLANA.dat dosyasından 2 blokluk veriyi, PER ismiyle bulunduğumuz dizin içine kopyalamak istiyoruz. Bu durumda dd komutu şu şekilde kullanılır:

$ dd if=/usr/acct/personel /PERFLANA.dat of=PER count=2
2+0 blocks in
2+0 blocks out
$ _

PER dosyasının boyutu ls komutuyla kontrol edilirse

$ ls -l PER
-rw -rw -rw-   1   burak           1024   Mar   4   09:13  PER
$ _

gerçekten 2 blok(1024 bayt) olduğu görülür.

Örnek

EBCDIC dosyaları UNIX işletim sisteminde kullabilmek amacıyla bir dönüşüme tabi tutmak gerekiyor. Bu amaçla dd komutu kullanılır.

$ dd if=stokmas of=stok conv=ascii
0+1 blocks in
0+1 blocks out
$ _

Örnek

Aşağıdaki metin dosyasını göz önüne alalım.

$ cat yazi
UNIX işletim sistemi baslangicta
bir grup arastirmacinin amaci icin gelistirildi.
Bu amac da, yazilim
gelistirilmesi icin daha uygun ve daha iyi
cevre kosullarinin saglanmasi idi.
Bircok isletim sisteminden farkli olarak donanim ureticilerinin
gereksindikleri bazi ozellikler gozetilerek
tasarlandi.
$ _

Metin içinde yer alan tüm karakterleri büyük harflere dönüştürmek için aşağıdaki işlem yapılır:

$ dd if=yazi of=yaz conv=ucase
0+1 blocks in
0+1 blocks out
$ _

Yeni dosyanın içeriği şu şekildedir :

$ cat yaz
UNIX ISLETIM SISTEMI BASLANGICTA
BIR GRUP ARASTIRMACININ AMACI ICIN GELISTIRILDI.
BU AMAC DA, YAZILIM
GELISTIRILMESI ICIN DAHA UYGUN VE DAHA IYI
CEVRE KOSULLARININ SAGLANMASI IDI.
BIRCOK ISLETIM SISTEMINDEN FARKLI OLARAK DONANIN URETICILERININ
GEREKSINDIKLERI BAZI OZELLIKLER GOZETILEREK
TASARLANDI.
$ _

heartsmagic

Ben de bilmediğim kullanımlarını öğrenmiş oldum, teşekkürler :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Suat

Alıntı yapılan: heartsmagic - 26 Nisan 2016 - 01:30:25
Ben de bilmediğim kullanımlarını öğrenmiş oldum, teşekkürler :)

Rica ederim.
''Bilgi paylaştıkça çoğalan yegâne servettir.''