Команда, которая сообщит мне, когда в последний раз был изменен каталог или любой из его подкаталогов?

Команда, которая сообщит мне, когда в последний раз был изменен каталог или любой из его подкаталогов?

Мы пытаемся сделать устаревшим наш старый сервер домашних папок Linux. У нас все еще есть несколько человек, которые активно его используют. Наш план — изменить домашние папки, которые никто не использовал в течение последних шести месяцев, на «только для чтения». У нас есть клиенты Mac и Windows, которые получают доступ к этим общим папкам через SMB.

Итак, мой вопрос: существует ли команда, которая сообщит мне, когда в последний раз был изменен каталог или любой из его подкаталогов?

Или

Список родительских каталогов, которые были изменены с определенной даты?

Это позволит мне узнать, какие пользователи все еще активно используют свои домашние папки.

решение1

Проблема, с которой вы можете столкнуться, заключается в том, что изменение файла в каталоге не обязательно меняет временную метку каталога. Вот пример:

paulgear@localhost:~/tmp$ echo test1 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:29 test1
paulgear@localhost:~/tmp$ date
Wed Jan 15 09:30:07 EST 2014
paulgear@localhost:~/tmp$ echo test2 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear   18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear    0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear    6 Jan 15 09:30 test1

Обратите внимание, что полная замена содержимого test1 не обновила временную метку каталога. Поэтому ваша команда find, вероятно, должна искать как файлы, так и каталоги, что-то вроде этого:

find . -mtime +180 -print0 | xargs -0 chmod a-w

Или вы можете захотеть сделать временные критерии разными для файлов и каталогов:

find . -type d -mtime +120 -print0 | xargs -0 chmod a-w
find . -type f -mtime +180 -print0 | xargs -0 chmod a-w

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

Связанный контент