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 
  • La partition ext3 se monte de manière aléatoire en lecture seule
  • Comment taper des caractères spéciaux dans Linux?
  • Les pixels "Burned in" sur le moniteur TFT
  • Windows UAC vs Linux sudo
  • Linux Arch sur ARM - Random USB drive "freeze"
  • Comment installer le pilote MediaTek MT7610U (RT2860)
  • Gedit on mac peut-il être utilisé pour éditer des fichiers sur ssh?
  • Easy_install installe Trac 0.11, mais je veux 0.12
  • Pourquoi ne puis-je pas supprimer un fichier sur lequel j'ai des autorisations d'écriture de groupe?
  • Non compris une liste de répertoires de Find
  • Logiciel de gestion d'iPod pour Linux
  • Soyons le génie de l'ordinateur et du réseau.