-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
`b' for 512-byte blocks (this is the default if no suffix is
used)
`c' for bytes
`w' for two-byte words
`k' for Kilobytes (units of 1024 bytes)
`M' for Megabytes (units of 1048576 bytes)
`G' for Gigabytes (units of 1073741824 bytes)
The size does not count indirect blocks, but it does count
blocks in sparse files that are not actually allocated. Bear in
mind that the `%k' and `%b' format specifiers of -printf handle
sparse files differently. The `b' suffix always denotes
512-byte blocks and never 1 Kilobyte blocks, which is different
to the behaviour of -ls.
@Jay: Od człowieka znajdującego się na początku sekcji „Testy”: „Argumenty liczbowe można określić jako + n dla większej niż n, -n dla mniejszej niż n, n dla dokładnie n”.
Strona podręcznika wspomina o tym na górze i opisuje, że + i - można zastosować do wszystkich przełączników, które pobierają argumenty numeryczne ('n'), w tym co oznaczają + i -. (Wyszukaj TESTY na stronie podręcznika, aby znaleźć początek sekcji, w której jest to opisane)
@Dennis Williamson: dziwne, + i - działają w OS X, ale strona podręcznika nie ma sekcji TESTY. W rzeczywistości brakuje dużej porcji w porównaniu do linku, brakuje między innymi TESTÓW, AKCJI, OPERATORÓW.
Właśnie dowiedziałem się, że strony podręcznika użytkownika BSD opisują rzecz +/-. Jego droga znajduje się na końcu sekcji „Podstawowe”. - Wszystkie liczby podstawowe, które przyjmują argument liczbowy, pozwalają, aby liczba była poprzedzona znakiem plus („+”) lub znakiem minus („-”). Poprzedni znak plus oznacza „więcej niż n”, poprzedzający znak minus oznacza „mniej niż n” i żaden nie oznacza „dokładnie n”
AWK jest naprawdę bardzo łatwe do tego typu rzeczy. Oto kilka rzeczy, które możesz z tym zrobić w odniesieniu do sprawdzania rozmiaru pliku, tak jak zapytałeś:
Lista plików większych niż 200 bajtów:
ls -l | awk '{if ($5 > 200) print $8}'
Wyświetl listę plików mniejszych niż 200 bajtów i zapisz listę do pliku:
ls -l | awk '{if ($5 < 200) print $8}' | tee -a filelog
Wyświetl listę plików o wielkości 0 bajtów, zapisz listę do pliku i usuń puste pliki:
ls -l | awk '{if ($5 == 0) print $8}' | tee -a deletelog | xargs rm
Jest to złe, ponieważ du daje zajmowane miejsce na dysku. To nie to samo co rozmiar pliku. np. jeśli masz skompresowany system plików (btrfs / zfs) du da inny wynik niż ls, który pokazuje rzeczywisty rozmiar dekompresji.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.