Ubuntu で空でない 4KB ファイルを保持したまま空のファイルを削除する

Ubuntu で空でない 4KB ファイルを保持したまま空のファイルを削除する

4kb サイズの小さな .txt ファイルが何十万個も入ったフォルダがあります。完全に空なものもあれば、そうでないものもあります。しかし、最小ブロックサイズとして設定されているため、すべて同じ 4kb のサイズで表示されます。空ファイルを大量に削除し、空でないファイルを残す方法はありますか?

rsync --remove-sent-files -rv --min-size=4kb

すべてを削除します。

ありがとう

答え1

部分的な答えが見つかったと思います。空のコンテンツを持つ txt ファイルに少なくとも 1 つの隠し文字が含まれていると仮定すると、特定のバイト数未満のサイズを持つすべてのファイルを見つけて削除することができます。たとえば、サイズが 1 バイトのすべてのファイルを削除したい場合は、次のようにします。

find . -type f -size -2c -delete

答え2

実際に空のファイルは、 で見ると 0 バイトと表示されますls -l

これらを削除するにはfindman find https://manpages.ubuntu.com/manpages/cosmic/en/man1/find.1.html):

find folder -maxdepth 1 -type f -name '*.txt' -size 0 -delete

関連情報