2016-06-01 3 views
-1

今日、SSH経由でUNIX環境で作業していたのですが、私のコホートは、-sizeフラグに関連するGNU findutilsの見た目の特異性に遭遇しました。なぜLinux GNU find -size match duまたはls -lを見つけられないのですか?

ls -lコマンドを実行すると、ファイルのサイズが155バイトであることがわかります。しかしfind〜/ -size -1Kを実行すると結果は返されません。ファイルは正確に1kだけ一致します。

さらに、duは同じファイルに対して4kを返すので、ファイルを見つけるためにdu結果を使用していないことを知っています。何がありますか? duが信頼され、ls -lがファイルの "真の"サイズを見つけたら、メモリは4kの "チャンク"で提供されているようですが、findは予想以上に大きな結果をもたらします。どんな助けもありがたいと思いますが、これは過去に他の人たちが出てきたことを確信していますが、私の人生はどこでも結果を見つけることができません。

ありがとうございます!

+1

「-1k」は、「サイズ1024バイトのゼロブロック」、すなわち0バイトとして「発見」が理解する「サイズ1024バイト未満のブロック」を意味します。 'find'はブロックカウントに整数を使うようです。おそらく '-size -1024c'が必要です。 – Roman

+1

そしてこの質問は本当に[unix.se]です。 – Roman

答えて

0

this manual pageによると、Kサイズのサフィックスはサポートされていません。キロバイトは小文字のkを使用してください。おそらく、1bに相当する1、つまり512バイトのブロックが1つあります。そのには155バイトのファイルが含まれているはずなので、ちょっと混乱します。

+0

ダッシュが言及されている場合は、「数値引数は次のように指定できます」という単語を探します。 – Roman

+0

@Romanありがとう、編集中。 – unwind

関連する問題