Simplesmente com o comando GNU find
(se suportado):
find . -type f -mmin +30 -delete
Como você alterou sua condição, aqui está a versão atualizada:
find . -type f -cmin +15 -delete
Eu quero mover arquivos e diretórios com mais de 15 minutos de criação para a pasta de arquivamento no HP Unix, mas não encontrei nenhuma opção para isso. Eu criei um script Perl para ele, mas ele está movendo apenas os arquivos e não os diretórios.
#!/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;
Entrada:
/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
Saída:
/tmp/test14# ll
-rw-rw-rw- 1 root sys 0 Mar 14 22:03 hello3
Simplesmente com o comando GNU find
(se suportado):
find . -type f -mmin +30 -delete
Como você alterou sua condição, aqui está a versão atualizada:
find . -type f -cmin +15 -delete
Eu não tenho acesso ao HP-UX, mas no Solaris ou em qualquer sistema BSD (ou seja, não estou usando o GNU find
), o seguinte funcionaria:
find . -type f -cmin +15 -print -exec rm {} +
Isso localizaria todos os arquivos regulares dentro ou abaixo do diretório atual, cuja última mudança de status do inode ocorreu há mais de 15 minutos. Os nomes de caminho desses arquivos serão exibidos e, em seguida, os arquivos serão excluídos.
Para poder dar uma confirmação interativa antes de excluir qualquer coisa, use
find . -type f -cmin +15 -print -ok rm {} ';'
A maioria dos sistemas de arquivos Unix não rastreia o tempo de criação do arquivo . O predicado -cmin
de find
testará o ctime do arquivo, ou seja, o "tempo de mudança" do inode. Se o inode do arquivo não foi alterado desde que foi criado, então este seria seu "tempo de criação". O timestamp ctime é atualizado na criação de arquivos e em modificações de propriedade ou permissões. A modificação do conteúdo do arquivo também atualiza esse timestamp.