Nowe posty

Autor Wątek: usuwanie plików po dacie  (Przeczytany 7300 razy)

koklowski

  • Gość
usuwanie plików po dacie
« dnia: 2011-09-04, 13:55:29 »
Witam.

Jestem początkujący w linuksie i mam pytanie: powiedzmy że mam w katalogu kilkaset plików. Jak można usunąć pliki np. stworzone lub zmodyfikowane o określonej dacie lub np. o dacie mniejszej/większej niż określona? Czy jest jakaś opcja w poleceniu rm? (na razie nie znalazłem takiej)

ra-v

  • Gość
usuwanie plików po dacie
« Odpowiedź #1 dnia: 2011-09-04, 14:13:12 »
1. Zainstaluj np. Gnome Commandera lub Krusadera, wyszukaj co trzeba i usuń.
2. Odpal konsolę/terminal i zapoznaj sie
man find
i np. wyświetl pliki zmodyfikowane w ciągu ostatnich 2 dni
find katalog -mtime -2 -exec echo {} \\;
np. wyświetl pliki zmodyfikowane w ciągu ostatnich 2 minut
find katalog -mmin -2 -exec echo {} \\;
Zamiast echo wpisz rm - powinno grać. Używaj z ostrożnością.

koklowski

  • Gość
usuwanie plików po dacie
« Odpowiedź #2 dnia: 2011-09-04, 14:16:54 »
Ok, dzięki, zobaczę. Dla ścisłości - system mam tylko w wersji konsolowej, bez "okienek" :)

  • Gość
usuwanie plików po dacie
« Odpowiedź #3 dnia: 2011-09-04, 14:19:36 »
rm nie ma takiej opcji.

Za to polecenie find potrafi znaleźć pliki spełniające określone kryteria. Znalezienie plików nowszych niż jest bardzo proste, do znalezienia plików starszych niż będziesz musiał użyć opcji -mtime lub -mmin z liczbą poprzedzoną plusem jako argumentem. Jak widać, w przypadku plików starszych możesz działać tylko z dokładnością do minuty, w przypadku plików nowszych, możesz działać z dokładnością do sekundy.

Znalezione pliki usuniesz wywołując program find z argumentem -delete. Archaiczne wersje find (sprzed kilkunastu i więcej lat) nie miały jeszcze tego argumentu, w związku z czym trzeba było używać argumentu -exec z poleceniem rm. Na dzisiejszych systemach już nie ma takiej potrzeby.

Więcej informacji znajdziesz po wpisaniu polecenia man find. Polecam dokładnie przeczytać opis przynajmniej tych kilku argumentów, które opisałem powyżej, gdyż w przeciwnym wypadku możesz sobie zrobić krzywdę. Logika działania finda bywa dość zaskakująca.

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
usuwanie plików po dacie
« Odpowiedź #4 dnia: 2011-09-04, 14:35:57 »
touch --date "2011-07-01" /tmp/od
touch --date "2011-07-31" /tmp/do
find . -type f -and -newer /tmp/od -and ! -newer /tmp/do -delete

  • Gość
usuwanie plików po dacie
« Odpowiedź #5 dnia: 2011-09-08, 12:13:23 »
ultr: negacja testu -newer -- takie oczywiste, a takie trudne. Ja osobiście bym na to nie wpadł. Ale bardzo podoba mi się ten sposób, muszę go zapamiętać :) .

arctgx

  • Gość
usuwanie plików po dacie
« Odpowiedź #6 dnia: 2011-09-13, 01:01:32 »
Nie trzeba tworzyć plików.

http://forum.linux.pl/viewtopic.php?pid=86025#p86025 - wątek sprzed trzech lat.