GNU/Linux >> Znalost Linux >  >> Linux

Najděte soubory vytvořené v určitém časovém období

Pokud používáte GNU find , od verze 4.3.3 můžete:

find -newerct "1 Aug 2013" ! -newerct "1 Sep 2013" -ls

Bude akceptovat jakýkoli řetězec data akceptovaný GNU date -d .

Můžete změnit c v -newerct na kterýkoli z a , B , c nebo m pro zobrazení atime/birth/ctime/mtime.

Další příklad – seznam souborů upravených mezi 17:30 a 22:00 dne 6. listopadu 2017:

find -newermt "2017-11-06 17:30:00" ! -newermt "2017-11-06 22:00:00" -ls

Úplné podrobnosti z man find :

   -newerXY reference
          Compares the timestamp of the current file with reference.  The reference argument is normally the name of a file (and one of its timestamps  is  used
          for  the  comparison)  but  it may also be a string describing an absolute time.  X and Y are placeholders for other letters, and these letters select
          which time belonging to how reference is used for the comparison.

          a   The access time of the file reference
          B   The birth time of the file reference
          c   The inode status change time of reference
          m   The modification time of the file reference
          t   reference is interpreted directly as a time

          Some combinations are invalid; for example, it is invalid for X to be t.  Some combinations are not implemented on all systems; for example B  is  not
          supported on all systems.  If an invalid or unsupported combination of XY is specified, a fatal error results.  Time specifications are interpreted as
          for the argument to the -d option of GNU date.  If you try to use the birth time of a reference file, and the birth time cannot be determined, a fatal
          error  message  results.   If  you  specify a test which refers to the birth time of files being examined, this test will fail for any files where the
          birth time is unknown.

Níže můžete najít to, co potřebujete.

Najít soubory starší než konkrétní datum/čas:

find ~/ -mtime $(echo $(date +%s) - $(date +%s -d"Dec 31, 2009 23:59:59") | bc -l | awk '{print $1 / 86400}' | bc -l)

Nebo můžete najít soubory mezi dvěma daty. První datum novější, poslední datum, starší. Můžete přejít na druhou a nemusíte používat mtime. Můžete použít, co potřebujete.

find . -mtime $(date +%s -d"Aug 10, 2013 23:59:59") -mtime $(date +%s -d"Aug 1, 2013 23:59:59")

Tady je pár dobrých řešení. Chtěl jsem se o to podělit, protože je krátký a jednoduchý.

Používám find (GNU findutils) 4.5.11

$ find search/path/ -newermt 20130801 \! -newermt 20130831

Zkuste následující příkaz:

find /var/tmp -mtime +2 -a -mtime -8 -ls

To vám umožní najít soubory v /var/tmp složky, které jsou starší než 2 dní, ale ne starší než 8 dnů.


Linux
  1. Linux – Jak zjistit datum vytvoření souboru?

  2. Jak zobrazit seznam souborů, které byly změněny v určitém časovém rozmezí?

  3. Linux – Jak smazat soubory vytvořené mezi dvěma časy?

  1. Jak získat pouze soubory vytvořené po rande s Ls?

  2. Je možné přenášet soubory v časovém rozmezí přes FTP?

  3. Linux – získávání souborů pro aktuální datum v Linuxu?

  1. Jak najít a seřadit soubory na základě data a času úpravy v Linuxu

  2. Náhodné číslo mezi rozsahem v shellu

  3. Rekurzivně najít všechny soubory novější než daný čas