LoginSignup
2
0

More than 3 years have passed since last update.

ターミナルでファイルのサイズを指定する3つの方法

Posted at

こういうときありませんか?
ターミナルでls -lをしてみたらデータサイズが気に食わない!!
もっとキリのいいデータサイズにした!
など、日常には常人には理解しがたい思考回路をした人間もいるわけです。
(単にまだデータサイズを変更するメリットや具体例を知らないだけ)

そこで、どうやったらデータサイズを指定できるのかを試したので、ここに書き留めておきます。

まず、ls -lで表示された文字列の左から5ブロック目の数字がデータサイズです。

先に結果を言いますと、方法は3つ見つけました。
しかし、そのうち1つはlinux環境でしか使えません。
1:https://www.atmarkit.co.jp/ait/articles/1712/01/news017.html
truncateコマンド(これがlinux環境でしか使えないもの)投稿者自身はmacbookでUnix系のOS(ここらへんの知識はまだ曖昧)でして、ターミナルでtruncateを使用したら"zsh:command not found: truncate"とメッセージが返されました。

2:http://x68000.q-e-d.net/~68user/unix/pickup?mkfile
mkfileコマンド・・・この方法が一番簡単で直感的にデータサイズを指定(変更)できます。
使い方は簡単、[mkfile データサイズ ファイル名]
たったこれだけです。(だったらいろいろ言わずにこれだけ書けよ。と思ったあなた。その通り!! しかしこの記事は投稿者自身の備忘録であり、失敗したことや知識が曖昧なところを自分で探すためにも役立てるつもりなので、長ったらしく書きます。すいません)

3:https://www.atmarkit.co.jp/ait/articles/1711/30/news027.html
ddコマンド・・・今回一番困惑したのはこのddコマンドです。なぜなら調べていく中で知らない単語はいっぱい出てきて頭がパンクしそうになったからです。
まず、ddの構文はいろいろなオプションがありややこしいです。
自分がファイルサイズを1024にするときのコマンドは
[dd if=/dev/zero bs=1024 count=1 of=ファイル名]とします。
一つ一つ見ていくと、
if=/dev/zeroとは[if=ファイル名]で標準入力の代わりにファイルから読み出す。といういみがあるらしい。つまり、scanfなどの入力の代わりをするということ?
そして、/dev/zeroという意味は常にNULL文字(0x00)を主力し続けるという特殊なデバイスという意味。
bs=1024は100バイト分をひとまとまりとして count=1 個分のファイルを作るという意味です。

終わりです。(突然のおわり)

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0