GNU/Linux >> Tutoriels Linux >  >> Linux

Copier les fichiers modifiés après une date spécifique à l'aide des commutateurs Cp ?

Lorsque j'exécute la commande find . -mtime -60 Je reçois la liste des fichiers modifiés au cours des 60 derniers jours.

Ainsi, lorsque j'exécute find . -mtime -60 -exec cp {} /tmp/1 \; Je peux copier ces fichiers dans un nouveau répertoire pour traitement

Cependant, si je veux conserver les horodatages, je ne peux pas copier uniquement les fichiers nécessaires lorsque j'exécute find . -mtime -60 -exec cp -LR --preserve=timestamps {} /tmp/2 \;

Ce qui finit par arriver, c'est que TOUS les fichiers du répertoire source sont copiés au lieu de seulement les fichiers dont j'ai besoin.

Une solution ici ?

Réponse acceptée :

Ce qui se passe ici, c'est que lorsque vous utilisez le -R option pour cp et fournissez un répertoire en argument, il copie tout dans ce répertoire. De plus, cela ne préservera pas la structure des répertoires car tous les fichiers des répertoires inférieurs seront copiés directement dans /tmp/2 . C'est peut-être ce que vous voulez (voir la réponse de X Tian pour savoir comment procéder de cette façon), mais attention si des fichiers ont le même nom, l'un écrasera l'autre à la destination.

Pour conserver la structure des répertoires, vous pouvez utiliser cpio :

find . -mtime -60 -print0 | cpio -0mdp /tmp/2

Si le -0 (ou équivalent) n'est pas disponible, vous pouvez le faire, mais attention aucun de vos noms de fichiers ne contient de retour à la ligne :

find . -mtime -2 | cpio -mdp /tmp/2

cpio devrait également prendre en charge le -L option, mais soyez prudent avec cela car dans certains cas, cela peut provoquer une boucle infinie.


Linux
  1. Comment extraire des fichiers tar dans un répertoire spécifique ou différent sous Linux

  2. Comment télécharger ou télécharger des fichiers/répertoires à l'aide de sFTP sous Linux

  3. Guide Ansible :Gérer les fichiers à l'aide d'Ansible

  4. Comment copier des répertoires dans un répertoire en utilisant install in bash ?

  5. Comment copier plusieurs fichiers simultanément à l'aide de scp

Comment supprimer des répertoires et des fichiers à l'aide de Linux

Comment copier des fichiers et des répertoires sous Linux

Comment tarer des types de fichiers spécifiques (extensions) dans un répertoire

Comment copier des fichiers avec une extension de fichier spécifique de manière récursive

Comment copier des fichiers sous Linux à l'aide de la commande CP

Comment restaurer une sauvegarde de fichiers/répertoires spécifiques à l'aide de JetBackup 5 ?