web-dev-qa-db-fra.com

rechercher et supprimer un fichier ou un dossier datant de plus de x jours

Je souhaite supprimer un fichier et un dossier de plus de 7 jours, j'ai donc essayé

[17:07:14 [email protected]:~]# find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \;

Alors quand je lance find /tmp/ -mindepth 1 -maxdepth 1 -ctime +7 -exec ls -l {} \; il n'affiche aucun répertoire, mais pour find /tmp/ -mindepth 1 -maxdepth 2 -ctime +7 -exec ls -l {} \; il montre peu de fichiers dans subdir.

Quelle est la bonne façon de supprimer des fichiers/dossiers de plus de 7 jours dans un répertoire spécifique?

11
roy

Vous pouvez utiliser ce morceau de code

find /tmp/* -mtime +7 -exec rm {} \;

Explication

Le premier argument est le chemin d'accès aux fichiers. Il peut s'agir d'un chemin, d'un répertoire ou d'un caractère générique comme dans l'exemple ci-dessus. Je recommanderais d'utiliser le chemin complet et de vous assurer que vous exécutez la commande sans l'exécutable pour vous assurer d'obtenir les bons résultats.

Le deuxième argument, -mtime, est utilisé pour spécifier le nombre de jours d'ancienneté du fichier. Si vous entrez +7, il trouvera des fichiers de plus de 7 jours.

Le troisième argument, -exec, vous permet de passer une commande telle que rm. Le {} \; à la fin est nécessaire pour terminer la commande.

Source: http://www.howtogeek.com/howto/ubuntu/delete-files-older-than-x-days-on-linux/

Pour supprimer des dossiers, après avoir vidé l'intérieur, vous pouvez rmdirinstad de rm dans le morceau de code, même si vous ne voulez voir que les répertoires que vous pouvez ajouter

type -d 

à un morceau de code tel que ci-dessous:

find /tmp/*/* -mtime +7 -type d -exec rmdir {} \;
24
Tolga Varol

Plus facile à faire

find /tmp/* -mtime +7 -exec rm -rf {} \; 

Qui supprimera les fichiers et les répertoires

7
user6406452

ma façon simple:

find /tmp/* -daystart -mtime +7 -delete

l'option daystart mesure les temps depuis le début d'aujourd'hui plutôt que depuis 24 heures

réf: official_doc

2
alfiogang