简体   繁体   English

从perl目录中递归删除文件

[英]recursively file delete from directory in perl

I am new in perl script. 我是perl脚本的新手。 I want to write perl which delete previous backup file and extract new backup file from dropbox and rename with specific file name. 我想写perl删除以前的备份文件,并从保管箱中提取新的备份文件,并使用特定的文件名重命名。

Example: 例:

backup location: 备份位置:

D:\\Database\\store_name\\ containing .bak files D:\\Database\\store_name\\包含.bak文件

Actual folder data D:\\Database\\Mahavir Dhanya Bhandar\\ contain .bak file 实际文件夹数据D:\\Database\\Mahavir Dhanya Bhandar\\包含.bak文件

D:\\Database\\Patel General Store\\ containg .bak files D:\\Database\\Patel General Store\\ containg .bak文件

..so on ..如此

  1. How can write perl script code which delete *.bak files store_recursively 2.extract new backup file from dropbox and rename with specific file name. 如何编写Perl脚本代码来删除*.bak文件store_recursively 2.从Dropbox中提取新的备份文件并使用特定的文件名重命名。

Have you looked into walking your file tree. 您是否考虑过要走文件树。 http://rosettacode.org/wiki/Walk_a_directory/Recursively . http://rosettacode.org/wiki/Walk_a_directory/递归地 Combine this with simple file operations (copying, deleting, etc.) and you should be good. 将此与简单的文件操作(复制,删除等)结合起来,您应该会很好。

use File::Find qw(find);

my $dir = "D:\Database\Store_Name";

find sub {unlink $File::Find::name if /\.bak$/}, $dir;

and assuming that connectToDropbox() connects to your dropbox 并假设connectToDropbox()连接到您的保管箱

use File::Copy;
use File::Find qw(find);

my $backup = connectToDropbox();
my $dir = "D\Database\Store_Name";

find sub {copy($backup -> getFile("file"), "newFile")} $dir;

of course, this assumes that you already can set up a connection and such to Dropbox. 当然,这假设您已经可以建立与Dropbox的连接。 If not, there is a good CPAN library here you can check out. 如果没有,这里有一个不错的CPAN库您可以签出。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM