Existe-t-il un moyen simple de faire cela silencieusement, si /my-directory
n'existe pas?
find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm
Versions:
Vous pouvez rejeter le rapport d'erreur de find
avec 2>/dev/null
, ou vous pouvez éviter d'exécuter la command du tout:
test -d /my-directory && find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm
Comme une légère optimization et un code plus clair, certaines versions de la find
– y compris la vôtre – peuvent effectuer le rm
pour vous directement:
test -d /my/directory && find /my-directory -type f -mtime +14 -delete
Vous pouvez utiliser,
find /my-directory -type f -mtime +14 -print0 2>/dev/null | xargs -r0 rm
Explication:
2> /dev/null
signifie redirect stderr vers /dev/null
.
/dev/null
est le périphérique null qui prend toute input que vous voulez et le jette loin. Il peut être utilisé pour supprimer toute sortie. print0
et xargs -r 0
sont inutiles ici, find
a cette capacité embeddede:
[ -d /my-directory ] && find /my-directory -type f -mtime +14 -exec rm {} +
ou, comme vous utilisez GNU find, cette variante proposée par @terdon:
[ -d /my-directory ] && find /my-directory -type f -mtime +14 -delete