Muszę usunąć z folderu wszystkie pliki starsze niż określony plik.
Uruchamianie basha na CentOS 7.
Mam na to rozwiązanie, ale myślę, że powinien istnieć bardziej elegancki sposób:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
bash
shell-script
centos
csny
źródło
źródło
-maxdepth 1
aby wyszukiwanie nie było rekurencyjne! -newer
oznacza „nie nowszy”, a więc „starszy lub w tym samym wieku ”; sam plik zostanie dopasowany, jeśli znajdzie się na ścieżcefind
, tylko o czym należy pamiętać.! -name reference
(patrz trzeci punkt).porównaj czasy modyfikacji plików przy
test
użyciu-nt
(nowszych niż) i-ot
(starszych niż) operatorów:źródło