LINUX.ORG.RU

bash, научите плохому


0

0

хочется переодически получать список новых файлов в директории, как это можно сделать. я могу получить список файлов, могу получить это список в любой момент но как сравнивать? можно перебрать все строчки и грипом вырезать файлы который уже существовали. но может есть что нить более подходящее?

> список новых файлов

Что значит «новых»? Выбрать файлы с датой изменения после определённого числа можно с помощью утилиты `find(1)`.

Sphinx ★★☆☆
()

[2009.05.18 22:35:29] ivan@ivan-laptop ~/test
$ ls -1 .. > 1.list

[2009.05.18 22:35:41] ivan@ivan-laptop ~/test
$ touch ../wfrr

[2009.05.18 22:35:54] ivan@ivan-laptop ~/test
$ ls -1 .. > 2.list

[2009.05.18 22:35:59] ivan@ivan-laptop ~/test
$ diff 1.list 2.list 
31a32
> wfrr

Как-то так. Просто храни список файлов предыдущего "снимка".

Deleted
()

Любите вы черезжопные решения однако.

Вот так надо:

find . -maxdepth 1 -type f -newer .lastaccess; touch .lastaccess


З.Ы. впервый раз ругнется на отсутствие .lastaccess 
     (можешь заранее сделать touch .lastaccess)

sdio ★★★★★
()
Ответ на: комментарий от sdio

> find . -maxdepth 1 -type f -newer .lastaccess; touch .lastaccess

А что будет с файлами, которые могут быть созданы после find, но до touch?

// Занудный перфекционист

Deleted
()
Ответ на: комментарий от Deleted

>> find . -maxdepth 1 -type f -newer .lastaccess; touch .lastaccess

>А что будет с файлами, которые могут быть созданы после find, но до touch?

Так пойдет?

touch .startfind
 find . -maxdepth 1 -type f -newer .lastaccess
touch -r .startfind .lastaccess

sdio ★★★★★
()

Решение уже есть, просто хотел добавить, что ещё для этих целей можно взять incron. Либо складывать куда-нибудь список созданных файлов, либо сразу при появлении файлов что-то с ними делать.

Laz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.