Retrait des fichiers plus anciens que 1 mois, mais laissez les fichiers créés au 1er jour du mois

J'essaie de supprimer certains fichiers d'archive d'un dossier sur un serveur de fichiers CentOS avec un cronjob. Les exigences:

  1. Supprimer les fichiers du dernier mois
  2. Le fichier .tgz du premier jour du mois doit être laissé intact.

Je sais que je peux supprimer des fichiers plus anciens que x jours avec:

find /path -mtime +30 -exec rm {} \; 

Cependant, cela ne laissera pas seul les archives créées au premier jour du mois. Internet ne semble pas fournir une réponse (pour l'instant).

One Solution collect form web for “Retrait des fichiers plus anciens que 1 mois, mais laissez les fichiers créés au 1er jour du mois”

Première note

Sur les systèmes de fichiers Unix, vous n'avez aucune information sur le temps de création d'un fichier. Ce qui est souvent appelé ctime est le temps de changement d'état d'un fichier. Cela peut être modifié par renommement de fichier ou modifications d'autorisations.

Voir ce lien pour plus d'informations.

Soyez donc averti que la solution suivante pourrait échouer.

Solution à l'aide d' awk

find n'a aucun opérateur pour sélectionner une date spéciale. Donc, l'astuce consiste à créer une sortie avec le jour du mois et le nom du fichier et à l'aide d'un séparateur qui ne fait pas partie des noms de fichiers. Je suppose que # est un tel séparateur distinct.

  find . -mtime +30 -printf "%Cd#%p\n" 

Dans une deuxième étape, vous pouvez filtrer les fichiers indésirables.

  find . -mtime +30 -printf '%Cd#%p\n' |awk -F'#' '$1 !~ /^01/{print $2;}' 

Solution à l'aide de grep et cut

Faire le même tour que ci-dessus.

  find . -mtime +30 -printf '%Cd#%p\n' |grep -v '^01' |cut -d '#' -f 2 
  • Modifier l'éditeur de texte par défaut dans Sublime Text dans Linux Mint
  • La tentative d'installation de tmux sur CentOS 6.x échoue avec une erreur: 'EVBUFFER_EOL_LF' non déclaré
  • Mettez en surbrillance la sortie de la recherche de la console, tout en affichant la sortie de commande entière
  • Comment vérifier l'espace disque utilisé par mon linux?
  • Dans la console linux, comment NE PAS envelopper la sortie
  • PuTTY X11 proxy: protocole d'autorisation incorrect essayé
  • Disposition du clavier Xephyr
  • Comment puis-je installer python-dev sans sudo?
  • Alternative iTunes pour Linux?
  • Comment puis-je récupérer un formulaire dans Firefox * sans * installer un plugin?
  • Comment puis-je ajouter Linux au nouveau gestionnaire de démarrage Windows 8?
  • Soyons le génie de l'ordinateur et du réseau.