chmod 文件名的 shell 脚本,但仅适用于自上次运行脚本以来的新文件

chmod 文件名的 shell 脚本,但仅适用于自上次运行脚本以来的新文件

我有一个目录,其中上传新文件并在上传时接收数字文件名。文件名是向上的数字。

我需要更改文件的权限,但仅限于自上次 chmod 以来上传的新文件。

有任何想法吗?

答案1

执行每个 chmod 操作时,触摸一个文件,例如touch /tmp/foo.

当下一次迭代到来时,使用 find -newer,例如find . -newer /tmp/foo -exec chmod 755 {} \;然后touch /tmp/foo

答案2

如果您想实现此目的,则需要将文件的“ctime”与脚本的“atime”进行比较。这不能通过普通 find(1) 实现来完成,而只能通过扩展 find 来完成。

对于现代 find(1) 实现(例如 BSD find 或 sfind),您可以在您的情况下使用 -newerXY:

寻找 。 -newerca 脚本

这将找到上次读取“脚本”后状态发生更改的所有文件。

请注意,某些 Linux 发行版默认使用 -noatime 挂载文件系统。

相关内容