Mam folder, w którym czasami wykonuję kilka dużych plików. Usuwam je ręcznie. Wiem, że można je usunąć po 1 dniu lub dłużej, ale chciałbym je usunąć, jeśli zostały zmodyfikowane w ciągu ostatnich kilku godzin.
W tym folderze są pliki, których NIE chcę usunąć, a wszystkie mają podobne, ale nieprzewidywalne nazwy plików. Nie mogę po prostu użyć del do usunięcia najnowszych, muszę polegać na dacie modyfikacji.
find /some/dir -type f -mmin -<minutes old> -delete
. Uruchom go najpierw bez-delete
opcja pokazująca, co miałoby zostać usunięte. Z POSIXfind
,find /some/dir -type f -mmin -<minutes old> -exec rm {} +
. Wymaga to jednak narzędzi Unix, które nie są dołączone do systemu Windows.-exec
jest POSIX, podczas gdy-print0
nie jest. (Umysł,-mmin
nie jest też POSIX, więc mój sprzeciw nie był uzasadniony.) Ucieczkafind
wyjście dlaxargs
jest trudne, chyba że masz-print0
; lubię-exec ... +
dużo lepiej i nie wymaga ucieczki.IIRC Eksplorator Windows może sortować według czasu modyfikacji, więc możesz to zrobić i wybrać pliki, które zostały zmodyfikowane w żądanym zakresie czasu.
slartibartfast podał odpowiedź, która zakłada, że masz zainstalowane podobne do Uniksa narzędzia. W systemie Windows może to być cygwin lub Narzędzia GNU Win32 lub SFU Microsoft Windows lub WYGRAŁEŚ . Jeśli zainstalujesz jedną z nich, upewnij się, że używasz jej
find
a nie niepowiązane rodzime polecenie Windows.źródło