【发布时间】:2015-10-07 17:23:58
【问题描述】:
我想以递归方式更改目录及其所有文件的修改时间 (mtime)。我试过了-
utime(undef, 1396396800, "/X/Y/dir1");
dir1包含更多的目录和文件,以上语句只改变/X/Y/dir1的mtime,不改变/X/Y/dir1内的其他目录/文件。
有没有什么方法可以递归地改变perl中目录的mtime?
【问题讨论】:
我想以递归方式更改目录及其所有文件的修改时间 (mtime)。我试过了-
utime(undef, 1396396800, "/X/Y/dir1");
dir1包含更多的目录和文件,以上语句只改变/X/Y/dir1的mtime,不改变/X/Y/dir1内的其他目录/文件。
有没有什么方法可以递归地改变perl中目录的mtime?
【问题讨论】:
没有“递归更改 mtime”功能。您必须使用File::Find 自己实现它。
类似这样的:
#!/usr/bin/env perl
use strict;
use warnings;
use File::Find;
sub change_mtime {
utime( undef, 1396396800, $File::Find::name );
}
find( \&change_mtime, "/X/Y/dir1" );
(我假设您的 utime 示例是正确的,我还没有测试过)
【讨论】: