2013-03-29 7 views
35

ディレクトリ内およびサブディレクトリ内のゼロバイトファイルをすべて見つけるにはどうすればよいですか?サブディレクトリを含むディレクトリ内のすべてのゼロバイトファイルの検索方法

私はこの行っている:

#!/bin/bash 
lns=`vdir -R *.* $dir| awk '{print $8"\t"$5}'` 
temp="" 
for file in $lns 
do 
    if test $file = "0" 
    then 
    printf $temp"\t"$file"\n" 
    fi 
temp=$file 
done 

を私は唯一のそのディレクトリ・ファイル内の結果ではないすべてのファイル を取得し、任意のファイル名にスペースを持っているならば、私はタブ

続く最初の単語だけを取得します誰でも助けてくれますか?サイズ0の$ dirを内と下のすべてのファイルの名前を印刷すること

+0

を無視して、この要件を満たす、すべてのファイルになります。 – alk

+0

質問も[unix&linux](http://superuser.com/q/575235/4714)に掲載されています。同じ質問を複数の場所に投稿しないでください。 –

+0

次回、私のブラウザで問題が発生したため、このように繰り返されません。スーパーユーザーに投稿されましたが、ここで履歴クッキーとcatcheをクリアして問題を解決しました。つまり、ここで再度尋ねました。 – Civa

答えて

89

findのないすべての実装は、デフォルトでは出力を生成しますので、あなたがする必要があること

find "$dir" -size 0 

注:

find "$dir" -size 0 -print 
+0

* .xml – Civa

+1

@Civaさまざまな方法で結果をフィルタリングできます。 'man find' –

+0

はい私はそれを得ました| grep -v "\ .xml $" – Civa

4

いいえ、あなたはgrepを気にする必要はありません。上記の回答に加えとして

find $dir -size 0 ! -name "*.xml" 
12

あなたがそれらのファイルに

find $dir -size 0 -type f -delete 
+1

サイズ0のファイルをすべて削除する必要はありません。 – Raghvendra

+0

次に、サイズ0のフォルダ内のファイルを削除する方法 – Raghvendra

0

を削除したい場合これはサイズ0を検索するための正しい方法である:

find /path/to/dir -size 0 -type f -name "*.xml" 

サイズ0の複数のファイル拡張子を検索:

find /path/to/dir -size 0 -type f \(-iname \*.css -o -iname \*.js \) 

注:\(...を\)削除した場合の結果は、それゆえあなたは `男find`を読むのが好きかもしれませんサイズ0

関連する問題