2016-07-29 3 views
-1

ゼロの100バイトファイルを作成します。はゼロを含む100バイトファイルを作成しましたが、ゼロを見ることはできません

dd if=/dev/zero of=zero_file_100B bs=50 count=2 

それは正常に動作しますが、私はcat zero_file_100Bを行うときに、それは何も印刷されません: 私は、スクリプトを使用していました。その理由は何でしょうか?

+1

数値 '0'ではありませんASCII '' 0 ''と同じ –

+1

'hexdump -C 100B.file'を試してください。 – user172818

+0

'dd if =/dev/zero bs = 50 count = 2 |を試してください。 tr '\ 0' '0'> zero_file' – Cyrus

答えて

5

その理由は、ASCIIコード0の文字は、端末エミュレータにグラフィック表現がないことが予想されるためです。 ASCIIコード48を持つ文字'0'と混同しないでください。

バイナリデータに移植可能な方法を表示するには、あなたがodを使用する可能性があります:

od -v -t u1 zero 
+0

あなたの端末によっても異なります。これは、 '^ @'や や他の多くの表現として表示することができます。 https://en.wikipedia.org/wiki/Null_character – tripleee

+0

@treepleeeも参照してください。私は実際に書きました。「**あなたの**端末エミュレータには表現がありません。 – jlliagre

+0

確か;私のコメントは、将来の訪問者を対象にしています。 – tripleee

1

が、私はそれはおそらくあなたがこの

を探していたもの

を印刷しませんzero_file_100B猫を行います

$ printf "%0*d" 100 0 > 38650594 
$ ls -l 38650594 
-rw-rw-r-- 1 me me 100 Jul 29 10:32 38650594 # Size is 100 bytes. 
+1

ファイル名が偶数であっても、それは奇妙な名前です;-)。 – jlliagre

+0

@jlliagre:それはなんでも質問番号です;) – sjsam

+0

私はQ38650594またはSO-38650594を使っていたでしょう。 – jlliagre

1

ゼロで何をしますか? あなたはすでにあなたが他のソリューションよりも遅い

for i in {1..100}; do printf 0; done` 

で「0」印刷することができますが、他の要件については、これを変更することができ、\ 0に成功しました:

# create file with size 100 only containing strings "zero" 
for i in {1..25}; do printf "zero"; done 

# create file with size 100 only containing strings "zeros" 
for i in {1..20}; do printf "zeros"; done 
関連する問題