nixp.ru v3.0

22 мая 2017,
понедельник,
20:33:12 MSK

DevOps с компанией «Флант»
decvar написал 13 октября 2004 года в 01:09 (265 просмотров) Ведет себя как мужчина; открыл 111 тему в форуме, оставил 1838 комментариев на сайте.

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

Uncle Theodore

Ну, у нас нынче 12 октября, стало быть

find -ctime -42 -print

Или в сентябре 31 день?

Good Luck,

UT

decvar

Это не совсем то. Надо имена директорий, а не файлов, которые в них изменяли. Т.е. если есть

somedir/subdir1

somedir/subdir2

somedir/subdir3

somedir/subdir4

и в subdir1 есть тока файлы правленые в августе, в subdir2 и 3 — и в августе и в сентябре, а в 4 — в и в сентябре и октябре. То поиск должен вернуть

subdir2

subdir3

subdir4

Genie


$ find /path/to/dir -type d -mtime -42

?

потому как опрерация над файлом затрагивает обновление каталога, что автоматически меняет ему время модификации.

Dreid

Кроме того, можно ещё

(for i in `find  -ctime -42 -print`; do dirname $i; done)|sort|uniq

Но это извращение :))

Genie
Dreid
Кроме того, можно ещё

(for i in `find  -ctime -42 -print`; do dirname $i; done)|sort|uniq

Но это извращение :))

извращение. тем более, что зачем тут for? :))

$ find  -ctime -42 -exec dirname "{}" \;|sort|uniq


:)))

Fatal

Как в bash сравнить строки

выражения if, while и так далее сравнивают только числа

Fatal

Спасибо, можете не отвечать, я нашел это в инете

Fatal

Рекомендю серьезный материл на тему «программирование на bash»

http://gazette.linux.ru.net/rus/articles/abs-guide/index.html