GNU/Linux >> Znalost Linux >  >> Linux

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

To je trochu zdlouhavé, protože touch nebere nezpracovaných time_t hodnotu, ale ve skriptu by to mělo dělat svou práci docela bezpečně. (-r možnost date je přítomen v MacOS X; GNU jsem dvakrát nezkontroloval.) Proměnné 'time' by se dalo vyhnout zapsáním substituce příkazu přímo do touch příkazový řádek.

time=$(date -r 1312603983 '+%Y%m%d%H%M.%S')
marker=/tmp/marker.$$
trap "rm -f $marker; exit 1" 0 1 2 3 13 15
touch -t $time $marker
find . -type f -newer $marker
rm -f $marker
trap 0

Můžete najít každý soubor, který byl vytvořen/změněn za poslední den, použijte tento příklad:

find /directory -newermt $(date +%Y-%m-%d -d '1 day ago') -type f -print

pro nalezení všeho za poslední týden použijte „před 1 týdnem“ nebo „před 7 dny“ cokoliv chcete


Možná to někdo využije. Najděte všechny soubory, které byly změněny v určitém časovém rámci rekurzivně, stačí spustit:

find . -type f -newermt "2013-06-01" \! -newermt "2013-06-20"

Linux
  1. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Jak rekurzivně vypsat všechny soubory a adresáře

  3. Jak gzipovat všechny soubory ve všech podadresářích v bash

  1. Linux find příkaz, najít 10 nejnovějších souborů rekurzivně bez ohledu na časové rozpětí

  2. Najděte všechny soubory s názvem obsahujícím řetězec

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

  1. Najít největší soubory rekurzivně?

  2. rsync soubory starší než 1 týden

  3. Najděte všechny soubory starší než jedna minuta