GNU/Linux >> Znalost Linux >  >> Linux

Linux:pomocí funkce find vyhledejte soubory starší než <datum>

Řešení 1:

Ne, můžete použít řetězec data/času.

Od man find :

-novější referenceXY
Porovná časové razítko aktuálního souboru s odkazem. Argument reference je obvykle název souboru (a jedno z jeho časových razítek se používá pro porovnání), ale může to být také řetězec popisující absolutní čas. X a Y jsou zástupné symboly pro jiná písmena a tato písmena vybírají, který čas patří tomu, jak se reference použije pro srovnání.

          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

Příklad:

find -newermt "mar 03, 2010" -ls
find -newermt yesterday -ls
find -newermt "mar 03, 2010 09:00" -not -newermt "mar 11, 2010" -ls

Řešení 2:

Přímo nesouvisí s otázkou, ale může to být zajímavé pro někoho, kdo zde narazí.

najít příkaz přímo nepodporuje parametr -older pro hledání souborů starších než určité požadované datum, ale můžete použít příkaz negate (s použitím příkladu přijaté odpovědi):

touch -t 201003160120 some_file
find . ! -newer some_file

vrátí soubory starší než zadané datum.

Řešení 3:

Pokud máte pouze '-novější soubor', můžete použít toto zástupné řešení:

# create 'some_file' having a creation date of 16 Mar 2010:
touch -t 201003160120 some_file

# find all files created after this date
find . -newer some_file

mužský dotyk:

  -t STAMP
          use [[CC]YY]MMDDhhmm[.ss] instead of current time

Za předpokladu, že váš dotyk má tuto možnost (můj je dotyk 5.97).

Řešení 4:

find <dir> -mtime -20

tento příkaz find najde soubory upravené za posledních 20 dní.

  • mtime -> upraveno (atime=accessed, ctime=created)
  • -20 -> mladší než 20 dní (20 přesně 20 dní, +20 více než 20 dní)

Můžete přidat další omezení jako:

find <dir> -mtime -20 -name "*.txt"

stejné jako předtím, ale najde pouze soubory končící na '.txt'.

Řešení 5:

Jen pro doplnění - můžete dokonce použít dva novější argumenty pro vyhledávání v časovém intervalu:

find ! -newermt "apr 01 2007" -newermt "mar 01 2007" -ls

najít všechny soubory z března 2007.


Linux
  1. Použití sed k nalezení a nahrazení textových souborů v Linuxu

  2. Použití linuxového příkazu find – Použití s ​​příklady

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

  1. Příkazy hledání pro Linux

  2. Použijte Najít a najít k vyhledání souborů v Linuxu

  3. Jak odstranit soubory starší než N dní pomocí tmpreaper v Linuxu

  1. Jak najít a odstranit soubory starší než určité časové období v Linuxu

  2. vypočítat celkový použitý prostor na disku soubory staršími než 180 dní pomocí funkce find

  3. Kopírování souborů na základě data modifikace v Linuxu