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
。
これらを削除するにはfind
(man find
https://manpages.ubuntu.com/manpages/cosmic/en/man1/find.1.html):
find folder -maxdepth 1 -type f -name '*.txt' -size 0 -delete