Como remover, copiar ou renomear um arquivo usando Perl

unlink remove rm del delete copy cp rename move mv File::Copy

Muitas pessoas que vem do mundo da administração de sistemas e da confecção de scripts Unix ou Linux, tentarão continuar usando os comandos unix básicos tais como rm, cp e mv para tais operações, executando-os com a crase ou com a chamada system, mesmo que estejam escrevendo script em Perl.

Isso funciona em sua plataforma corrente, mas também abre mão de um dos benefícios cruciais que o Perl trouxe para o mundo da administração de sistemas Unix.

Vejamos como podemos executar essas operações usando o Perl de uma maneira que seja independente de plataforma e sem recorrer ao shell.

Remover

O nome da respectiva função em Perl é unlink.

Ela remove um ou mais arquivos do sistema de arquivos. É similar ao comando rm no Unix ou ao del no Windows.

unlink $file;
unlink @files;

Esta função usa $_, a variável padrão do Perl (em inglês) se nenhum parâmetro é fornecido.

Para ver a documentação completa acesse perldoc -f unlink.

rename

Renomea ou move um arquivo. É semelhante ao comando mv no Unix e ao rename no DOS/Windos.

rename $old_name, $new_name;

Como isto nem sempre funciona em todos os sistemas de arquivos, a alternativa recomendada é a função move do módulo File::Copy:

use File::Copy qw(move);

move $old_name, $new_name;

Documentação (em inglês):

perldoc -f rename.

perldoc File::Copy.

Copiar

Não existe uma função do Perl para copiar. A maneira padrão de copiar um arquivo é através da função copy do módulo File::Copy.

use File::Copy qw(copy);

copy $old_file, $new_file;

Ele é semelhante ao comando cp no Unix e ao comando copy no Windows.

Para ver a documentação visite perldoc File::Copy.

Author

Gabor Szabo (szabgab) Gabor Szabo