我想以递归方式更改目录及其所有文件的修改时间(mtime)。我试过了 -
utime(undef, 1396396800, "/X/Y/dir1");
dir1包含更多目录和文件,上面的语句只更改/ X / Y / dir1的mtime,而不是/ X / Y / dir1中的其他目录/文件。
是否有任何方法可以递归更改perl中的目录的mtime?
答案 0 :(得分:6)
没有"递归地改变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
示例是正确的,我还没有测试过它)