Chcę znaleźć pliki, które są większe niż 1 GB i starsze niż 6 miesięcy na całym serwerze. Jak napisać do tego polecenie?
shell-script
command-line
files
find
shinek
źródło
źródło
find
implementacjach, w których tenG
sufiks jest obsługiwany, oznacza to GiB (1073741824 bajtów), a nie GB (1000000000). Przenośny, użyłbyśfind /path -mtime +180 -size +1073741824c
find: a.txt :Permission denied
Sugeruję dodanie tego2>/dev/null
inspirowanego tym komentarzem: unix.stackexchange.com/questions/42841/…xargs ls -lhS
find /path -mtime +180 -size +1G | xargs ls -lhS
find / -size +1G -mtime +180 -print0 2>/dev/null | xargs -0 ls -lhS
. Uwaga dla początkujących: Przekierowanie po2>/dev/null
prostu pozbywa siępermission denied
błędów, które nieuchronnie pojawią się podczas wyszukiwania z katalogu głównego. Aby posortować według daty ostatniej modyfikacji, użyjls -lht
zamiast tego i dodajr
dols
poleceń, np.ls -lhSr
Spowoduje odwrócenie wyników (od najmniejszej do największej / od najstarszej do najnowszej).find / -size +1G -mtime +180 -type f -print
Oto wyjaśnienie opcji polecenia według opcji: Począwszy od katalogu głównego, znajduje wszystkie pliki większe niż 1 Gb, zmodyfikowane ponad 180 dni temu, które są typu „plik”, i drukuje ich ścieżkę.
źródło