trouver: invalid prédicat lors de l'utilisation d'-newermt
Je suis l'aide d'une commande rechercher pour obtenir des fichiers entre un certain temps et de goudron avec la commande suivante,
find /lag/cnn -max-depth 3 -newermt "2013-12-19 00:00" -o -type f -newermt "2013-12-16 00:00" -print0 |
xargs -0 tar acf out.tar.gz
mais quand je lance cette commande obtiens: trouver: invalid prédicat `-newermt' . quel est le problème? et comment je peux contourner ce.
MISES à jour:
Ce que je suis en train d'essayer de faire, c'est
le chemin est (utilisé ls -lrt /lag/cnn/*/*):
/lag/cnn/Example1/one/a.tar.gz
/lag/cnn/Example1/two/a.tar.gz
/lag/cnn/Example1/three/a.tar.gz
/lag/cnn/Example2/one/a.tar.gz
Je suis à l'aide de grep pour Exemple1 et j'ai obtenu une liste de sample.txt comme suit,
/lag/cnn/Example1/one/a.tar.gz
/lag/cnn/Example1/two/a.tar.gz
/lag/cnn/Example1/three/a.tar.gz
à partir de ce sample.txt je veux goudron de fichiers basé sur le temps.depuis le tactile ne fonctionne pas sur un fichier. j'ai opté trouver de commande.c'est que j'ai besoin de le faire à partir de la racine du répertoire.
touch /lag/cnn/*/* start -d "2013-12-19 00:00"
ne fonctionnera pas pour vous. Donc, est-il possible de lire des fichiers entre un certain temps et de goudron ou comment utiliser cette touche pour utiliser -la plus récente et de trouver des fichiers entre certains le temps.
OriginalL'auteur user2572985 | 2013-12-21
Vous devez vous connecter pour publier un commentaire.
Votre version de
find
ne prend pas en charge la-newermt
prédicat, de sorte que vous ne pouvez pas l'utiliser. Comme solution de contournement, vous pouvez utiliser le-newer
prédicat. Que prédicat besoin d'un fichier de référence: au lieu d'un absolu date de modification, il utilisera la date de modification du fichier. Vous pouvez créer des "marqueur de fichiers" à cette fin, par exemple:Et réécrire à l'aide de
-newer
prédicat:Btw, il semble que vos conditions étaient erronées: vous avez
-newermt
deux fois avec des dates différentes, qui, dans votre exemple serait de récupérer tous les fichiers postérieure à la date plus ancienne, en ignorant la nouvelle date. Peut-être que vous vouliez faire quelque chose comme ceci à la place:Enfin, votre
tar
ne fonctionnera pas si l'argument de la liste est trop longue etxargs
se divise à de multiples exécutions, parce que toutes les exécutions, va recréer letar
fichier. Vous devez utiliser le-T
drapeau detar
au lieu dexargs
:Voir ma réponse mis à jour: j'ai mis les marqueurs
/tmp/
, mais ils pourraient être n'importe où. Dans les exemples que j'ai mis l'accent sur les points clés, c'est pourquoi omis votre d'autres paramètres tels que-maxdepth 3
. Vous pouvez ajouter ce que vous avez besoin sur le dessus de ces exemples.Salut janos,veuillez voir ma mise à jour de question.
Je ne comprends pas votre mise à jour. Pas un seul mot. Et vous êtes à l'aide de la
touch
exemple que je vous ai donné incorrectement. Vous devriez l'utiliser exactement comme je vous ai donné. Il semble que vous ne comprenez pas du tout ce que j'ai écrit.OriginalL'auteur janos
Trouver des fichiers plus récents que "démarrer" et plus de "fin"
Commande:
find . -type f -newer /tmp/mark.start ! -newer /tmp/mark.end
========================================================================
De sortie:
OriginalL'auteur Star202