Wpis z mikrobloga

Mircy oceńcie: ładna, autystyczna, czy #!$%@? część kodu?:

find "$archive_dir" -maxdepth 1 -type f -mtime +$retention_days -exec \
sh -c '{ echo "Deleting file: $1"; rm -f "$1" 2>&1; } >> logs.log' sh {} \;

Szuka pliku, usuwa i daje log
#programowanie #linux #it #informatyka
  • 10
  • Odpowiedz
@Kamero: Mnie nie podoba się exec. Używasz podziału linii, więc nie jest to jednolinijkowiec. Zdecydowanie lepiej jest napisać pętlę dla samej przejrzystości kodu, żeby nie robić nieczytelnego stringa z kodem do wykonania.

Poza tym, czy aby na pewno chcesz ">> logs.log"? Nie wiem czy nie lepiej byłoby, żeby każde usuwanie szło do oddzielnego pliku log z własną datą w nazwie.

Ja uważam, że lepiej napisać więcej kodu, ale czytelniej, niż mniej,
  • Odpowiedz
find "$archivedir" -maxdepth 1 -type f -mtime +$retentiondays -exec \

sh -c '{ echo "Deleting file: $1"; rm -f "$1" 2>&1; } >> logs.log' sh {} \;


@Kamero: GNU find:

find "$archive_dir" -maxdepth 1 -type f -mtime +$retention_days -printf "removing '%f'\n" -delete >> logs.log 2>&1
  • Odpowiedz
@Kamero: Z find uważaj, bo jest wersja GNU i BSD. One się różnią. Np. wersja BSD nie ma printf. Sam oceń, czy chcesz uniwersalny kod, czy trzymasz się tylko GNU.
  • Odpowiedz