Odpowiedzi:
Możesz to zrobić za pomocą tego polecenia
find /path/to/files* -mtime +365 -exec rm {} \;
Niektórzy wyjaśniają
/path/to/files* jest ścieżką do plików.
-mtimesłuży do określenia, ile dni ma dany plik. +365 znajdzie pliki starsze niż 365 dni, czyli jeden rok
-exec pozwala przekazać polecenie takie jak rm.
Edytuj Dzięki @Oli note -> możesz to zrobić:
find /path/to/files* -mtime +365 -delete
"{}"się {}przed przekazaniem jej find; następnie findzastępuje ją. Cytowanie {}jest sugerowane w przypadku, {a }oni sami mogą czasem być traktowani specjalnie przez powłokę - która nie ma nic do zrobić z pustymi spacjami. I często {}nie trzeba tego cytować. Nie mogę wymyślić żadnej sytuacji, przynajmniej przywołując find z powłoki w stylu Bourne'a, gdy {}nic w środku nie wyglądałoby na kłótnię trzeba zacytować. Czy możesz?)
finduchwyty uciekają dla siebie, ale nie jest to zły nawyk podczas pisania skryptów. To nie boli
findnie poradzi sobie z ucieczką, "{}"nadal będzie miał taki sam efekt, jak - po {}prostu nie zadziała, zamiast obu. To {}i "{}"zachowuj się tak samo nie jest - i nie może być - ze względu na jakąś specjalną cechę znalezienia. Mylenie tego, co jest rozszerzane przez powłokę z tym, co jest rozszerzane przez inny program, jest złym nawykiem. Wszyscy popełniamy ten błąd od czasu do czasu, ale nadal jest to błąd - nie jest to najlepsza praktyka. (Można jeszcze zacytować, {}aby pomóc ludziom zrozumieć, że nie jest to wzorzec rozwijania nawiasów klamrowych, ale nie ma to związku z dzieleniem słów.)
{}w-exec(tak czyta-exec rm "{}" \;). To gwarantuje, że spacje są obsługiwane poprawnie ... I możesz po prostu użyć-deletefunkcji zamiast-exec.