删除超过 X 分钟的文件

Ani*_*mar 2 shell perl

我想将创建时间超过 15 分钟的文件和目录移动到 HP Unix 中的存档文件夹,但我没有找到任何选项。我为它创建了一个 Perl 脚本,但它只移动文件而不移动目录。

#!/usr/bin/perl
use strict;
use warnings;
use File::Find;
use File::Copy;
my $dstdir = '/tmp/test14';
@ARGV = ("/tmp/test11/") unless @ARGV;
print STDERR "Begin @ ", scalar localtime, "\n";
find(
    sub {
        if ( -f $_ && -M _ >= 1/96 ) {
            print STDERR "Moving '$_'\n";
            move( $File::Find::name, $dstdir ) or die "$!\n";
        }
    },
    @ARGV );
print STDERR "Ended @ ", scalar localtime, "\n";
1;
Run Code Online (Sandbox Code Playgroud)

输入:

/tmp/test11# ll
drwxrwxrwx   2 root       sys             96 Mar 14 21:46 hello
drwxrwxrwx   2 root       sys             96 Mar 14 21:46 hello1
-rw-rw-rw-   1 root       sys              0 Mar 14 22:03 hello3
Run Code Online (Sandbox Code Playgroud)

输出:

/tmp/test14# ll
-rw-rw-rw-   1 root       sys              0 Mar 14 22:03 hello3
Run Code Online (Sandbox Code Playgroud)

Rom*_*est 7

只需使用 GNUfind命令(如果支持):

find . -type f -mmin +30 -delete
Run Code Online (Sandbox Code Playgroud)

当你改变你的条件时,这里是更新的版本:

find . -type f -cmin +15 -delete
Run Code Online (Sandbox Code Playgroud)