📄 ptar
字号:
#!/usr/bin/perluse strict;use Getopt::Std;use Archive::Tar;use File::Find;my $opts = {};getopts('dcvzthxf:I', $opts) or die usage();### show the help message ###die usage() if $opts->{h};### enable debugging (undocumented feature)local $Archive::Tar::DEBUG = 1 if $opts->{d};### enable insecure extracting.local $Archive::Tar::INSECURE_EXTRACT_MODE = 1 if $opts->{I};### sanity checks ###unless ( 1 == grep { defined $opts->{$_} } qw[x t c] ) { die "You need exactly one of 'x', 't' or 'c' options: " . usage();}my $compress = $opts->{z} ? 1 : 0;my $verbose = $opts->{v} ? 1 : 0;my $file = $opts->{f} ? $opts->{f} : 'default.tar';my $tar = Archive::Tar->new();if( $opts->{c} ) { my @files; find( sub { push @files, $File::Find::name; print $File::Find::name.$/ if $verbose }, @ARGV ); Archive::Tar->create_archive( $file, $compress, @files ); exit;}my $tar = Archive::Tar->new($file, $compress);if( $opts->{t} ) { print map { $_->full_path . $/ } $tar->get_files;} elsif( $opts->{x} ) { print map { $_->full_path . $/ } $tar->get_files if $verbose; Archive::Tar->extract_archive($file, $compress);}sub usage { qq[Usage: ptar -c [-v] [-z] [-f ARCHIVE_FILE] FILE FILE ... ptar -x [-v] [-z] [-f ARCHIVE_FILE] ptar -t [-z] [-f ARCHIVE_FILE] ptar -h ptar is a small, tar look-alike program that uses the perl module Archive::Tar to extract, create and list tar archives.Options: x Extract from ARCHIVE_FILE c Create ARCHIVE_FILE from FILE t List the contents of ARCHIVE_FILE f Name of the ARCHIVE_FILE to use. Default is './default.tar' z Read/Write zlib compressed ARCHIVE_FILE (not always available) v Print filenames as they are added or extraced from ARCHIVE_FILE h Prints this help message I Enable 'Insecure Extract Mode', which allows archives to extract files outside the current working directory. (Not advised).See Also: tar(1) Archive::Tar \n]}=head1 NAMEptar - a tar-like program written in perl=head1 DESCRIPTIONptar is a small, tar look-alike program that uses the perl moduleArchive::Tar to extract, create and list tar archives.=head1 SYNOPSIS ptar -c [-v] [-z] [-f ARCHIVE_FILE] FILE FILE ... ptar -x [-v] [-z] [-f ARCHIVE_FILE] ptar -t [-z] [-f ARCHIVE_FILE] ptar -h=head1 OPTIONS x Extract from ARCHIVE_FILE c Create ARCHIVE_FILE from FILE t List the contents of ARCHIVE_FILE f Name of the ARCHIVE_FILE to use. Default is './default.tar' z Read/Write zlib compressed ARCHIVE_FILE (not always available) v Print filenames as they are added or extraced from ARCHIVE_FILE h Prints this help message=head1 SEE ALSOtar(1), L<Archive::Tar>.=cut
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -