BASH发现ctime未按预期工作

BASH发现ctime未按预期工作,bash,Bash,我无法通过“查找”找到旧文件。我将我的发现链接到一个语句中,所有其他部分都工作正常。这是我所拥有的一个精简版本。它搜索$path的目录树,并为找到的每个项目创建单独的临时文件,其中只包含新行字符:所有文件、365天前更改的文件以及所有目录。文件和目录工作正常(以及我在这里没有包括的其他6个链接搜索),但ctime返回0个点击,我知道我使用的目录中有匹配的文件 find $path \ \( -type f -fprintf /tmp/files.txt "\n" \) , \ \( -type

我无法通过“查找”找到旧文件。我将我的发现链接到一个语句中,所有其他部分都工作正常。这是我所拥有的一个精简版本。它搜索$path的目录树,并为找到的每个项目创建单独的临时文件,其中只包含新行字符:所有文件、365天前更改的文件以及所有目录。文件和目录工作正常(以及我在这里没有包括的其他6个链接搜索),但ctime返回0个点击,我知道我使用的目录中有匹配的文件

find $path \
\( -type f -fprintf /tmp/files.txt "\n" \) , \
\( -type f -ctime +365 -fprintf /tmp/oldfiles.txt "\n" \) , \
\( -type d -fprintf /tmp/dirs.txt "\n" \)
这似乎与find的手册页一致。它说-ctime n查找更改时间为n天的文件。+gives>n天,-gives“更改时间”表示“元数据更改时间”,即权限或所有权发生更改时。考虑使用MTEC代替。

“更改时间”是指“元数据更改时间”,即权限或所有权发生更改时。考虑使用MTEC代替.

-cTim-N 文件的状态上次更改是n*24小时前。见评论 一段时间来理解舍入如何影响解释 文件状态更改次数

-时间n 文件的数据上次修改是在n*24小时前。见评论 一段时间来理解舍入如何影响解释 文件修改次数

状态=权限、用户、组,可能还有ACL等

Content=您的文件数据

如果您的文件在1.5年前其所有权发生了更改,并且没有显示,这是一个问题,但是如果您试图检测的是其内容的更改,请尝试-mtime

旁注:-在某些系统中使用atime可能很棘手,因为它也构成了一种访问。 旁注2:这是一个查找问题,完全不是bash特有的。

-ctime n 文件的状态上次更改是n*24小时前。见评论 一段时间来理解舍入如何影响解释 文件状态更改次数

-时间n 文件的数据上次修改是在n*24小时前。见评论 一段时间来理解舍入如何影响解释 文件修改次数

状态=权限、用户、组,可能还有ACL等

Content=您的文件数据

如果您的文件在1.5年前其所有权发生了更改,并且没有显示,这是一个问题,但是如果您试图检测的是其内容的更改,请尝试-mtime

旁注:-在某些系统中使用atime可能很棘手,因为它也构成了一种访问。
旁注2:这是一个查找问题,完全不是bash特有的。

您要匹配的文件有多旧?由于
-ctime
必须舍入小数天,因此您的表达式与至少36*6*天前创建的文件相匹配。我的目录中肯定有比365天旧得多的文件。您确定这些文件在365天内没有被碰过吗?关于您要匹配的文件,
ls-lc
是怎么说的?原来目录的所有者最近关闭并更改了目录树中所有内容的权限。虽然mtime作为“创建日期”通常不如ctime可靠,但我必须使用mtime来实现此工具。感谢大家的贡献。大多数Unix/Linux文件系统不存储文件的创建时间。对于这样做的人,需要努力让Linux意识到它们(系统调用、从何处开始存储额外数据等)?由于
-ctime
必须舍入小数天,因此您的表达式与至少36*6*天前创建的文件相匹配。我的目录中肯定有比365天旧得多的文件。您确定这些文件在365天内没有被碰过吗?关于您要匹配的文件,
ls-lc
是怎么说的?原来目录的所有者最近关闭并更改了目录树中所有内容的权限。虽然mtime作为“创建日期”通常不如ctime可靠,但我必须使用mtime来实现此工具。感谢大家的贡献。大多数Unix/Linux文件系统不存储文件的创建时间。对于一个这样做的人,需要努力让Linux意识到它们(系统调用、从哪里开始存储额外数据等)。我在主题上读到的所有内容都表明,ctime通常更接近创建日期,因为元数据的更改频率低于文件内容。我在主题上读到的所有内容都表明,ctime通常更接近创建日期,因为元数据的更改频率低于文件内容。