我们正在尝试弃用旧的
Linux主文件夹服务器.我们仍然有一些人正在积极地使用它.
我们的计划是将过去六个月内没有人使用的家庭文件夹更改为只读.
我们有Mac和Windows客户端通过SMB访问这些共享.
我们的计划是将过去六个月内没有人使用的家庭文件夹更改为只读.
我们有Mac和Windows客户端通过SMB访问这些共享.
所以我的问题是:
是否有一个命令告诉我上次修改目录或其任何子目录?
要么
自某个日期以来已修改的父目录列表?
解决方法
您可能遇到的一个问题是修改目录中的文件不一定会更改目录时间戳.这是一个例子:
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这样的“数据库”应用程序不会这样做.