Déplacer des files vers un autre directory supérieur à une date

Je search une solution pour déplacer des files d'une année à l'autre d'aujourd'hui. Ma partition de journal est pleine, mais je ne peux pas les supprimer. Ils sont nécessaires depuis longtime. Quoi qu'il en soit, j'ai trouvé une solution:

find /sourcedirectory -mtime 365 -exec mv "{}" /destination/directory/ \; 

Cela fonctionnerait-il? En demandant à cause de " -mtime 365 " cela déplacerait-il les files qui sont anciens depuis aujourd'hui vers un nouvel location?

Je vous remercie!

4 Solutions collect form web for “Déplacer des files vers un autre directory supérieur à une date”

Vous avez presque raison. -mtime 365 sera tous les files qui ont exactement 365 jours. Vous voulez ceux qui ont 365 jours ou plus, ce qui signifie append un + avant le nombre comme ça -mtime +365 .

Vous pouvez également être intéressé par le drapeau -maxdepth 1 , qui vous empêche de déplacer des éléments dans des sous-directorys.

Si vous voulez être sûr que vous ne déménagez que les files, pas les directorys, ajoutez -type f sur la ligne.

À la fin de la ligne, nous ajoutons \; de sorte que find sait que c'est la fin de la command que nous exécutons.

Donc, la ligne devrait être:

 find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec mv "{}" /destination/directory/ \; 

Pour être sur le bon côté, commencez par faire un ls -l au lieu de mv – de cette façon, vous pouvez vérifier par avance que vous obtenez exactement les files que vous souhaitez, avant de l'exécuter avec mv, comme ceci:

 find /sourcedirectory -maxdepth 1 -mtime +365 -type f -exec ls -l {} \; 

Faites attention lorsque vous utilisez les solutions ci-dessus, je les ai utilisées et j'ai fini par déplacer tous les files dans tous les sous-dossiers!

Cette command déplace tous les files dans / source directory et tous les sous-dossiers sous le directory source:

 find /sourcedirectory -mtime +365 -exec mv "{}" /destination/directory/ \; 

Au lieu de cela, utilisez l'option -maxdepth 1 pour uniquement les files dans le directory source

 find /sourcedirectory -maxdepth 1 -mtime +365 -exec mv "{}" /destination/directory/ \; 

Vous pouvez utiliser cette command et spécifiez que vous ne trouvez que pour les files, pas le directory et que le file est supérieur à un an

 find /sourcedirectory -type f -mtime +365 -exec mv "{}" /destination/directory/ \; 

Vous pouvez utiliser la command ci-dessous avec une heure si les files sont fréquemment consultés

 find /sourcedirectory -type f -atime +365 -exec mv -t /destinationdirectory {} +; 
  • Spécifiez le groupe par défaut et les permissions pour les nouveaux files dans un certain directory
  • Comment tester si un port hôte distant est accessible ou pas dans Unix
  • Apache: Configurez "LogLevel debug" pour certains modules uniquement?
  • Mettre les configurations du server dans le contrôle de la version via SSH
  • Le mode Rsync et Lazy?
  • Comment puis-je savoir quelle version de Fedora je cours depuis le cli (pas uname -a)?
  • Unix Legendry (et autres * nix aussi)
  • rsync - link-dest comportement lorsqu'il est exécuté comme sudo
  • Equivalent Solaris / Unix du journal des events
  • Disparités dans la production de «groupes»
  • Raisons d'une mise à niveau vers NFS 4
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.