⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directories.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
..\n"</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$dir</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    rmtree<FONT color=3D#00ffff>(</FONT>$dir<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN522>Renaming Files</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$file</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@NAMES</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$newname</FONT> =3D $file<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#bebebe># change $newname
</FONT>    <FONT color=3D#98fb98>rename</FONT><FONT =
color=3D#00ffff>(</FONT>$file, $newname<FONT color=3D#00ffff>)</FONT> =
<FONT color=3D#98fb98>or</FONT><FONT color=3D#43cd80>  </FONT>
        <FONT color=3D#98fb98>warn</FONT> <FONT =
color=3D#00cd00>"Couldn't rename $file to $newname: $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch09/rename">download =
the following standalone program</A></FONT>
#!/usr/bin/perl -w
# rename - Larry's filename fixer
</FONT>$op =3D <FONT color=3D#ff7f50>shift</FONT> <FONT =
color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"Usage: rename expr [files]\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>chomp</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ARGV</FONT> =3D &lt;STDIN&gt;<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    $was =3D $_<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>eval</FONT> $op<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>die</FONT> $@ <FONT color=3D#ffa500>if</FONT> =
$@<FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#98fb98>rename</FONT><FONT =
color=3D#00ffff>(</FONT>$was,$_<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#ffa500>unless</FONT> $was <FONT color=3D#98fb98>eq</FONT> =
$_<FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe>#-----------------------------
#% rename 's/\.orig$//'  *.orig
#% rename 'tr/A-Z/a-z/ unless /^Make/'  *
#% rename '$_ .=3D ".bad"'  *.f
#% rename 'print "$_: "; s/foo/bar/ if &lt;STDIN&gt; =3D~ /^y/i'  *
#% find /tmp -name '*~' -print | rename 's/^(.+)~$/.#$1/'
#-----------------------------
#% rename 'use locale; $_ =3D lc($_) unless /^Make/' *
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN525>Splitting a Filename into Its =
Component=20
Parts</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>File::Basename</FONT><FONT color=3D#00ffff>;</FONT>

$base =3D basename<FONT color=3D#00ffff>(</FONT>$path<FONT =
color=3D#00ffff>);</FONT>
$dir  =3D dirname<FONT color=3D#00ffff>(</FONT>$path<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>(</FONT>$base, $dir, $ext<FONT =
color=3D#00ffff>)</FONT> =3D fileparse<FONT =
color=3D#00ffff>(</FONT>$path<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$path =3D <FONT color=3D#00cd00>'/usr/lib/libc.a'</FONT><FONT =
color=3D#00ffff>;</FONT>
$file =3D basename<FONT color=3D#00ffff>(</FONT>$path<FONT =
color=3D#00ffff>);</FONT><FONT color=3D#43cd80>    </FONT>
$dir  =3D dirname<FONT color=3D#00ffff>(</FONT>$path<FONT =
color=3D#00ffff>);</FONT><FONT color=3D#43cd80>     </FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"dir is $dir, =
file is $file\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># dir is /usr/lib, file is libc.a
#-----------------------------
</FONT>$path =3D <FONT color=3D#00cd00>'/usr/lib/libc.a'</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>(</FONT>$name,$dir,$ext<FONT =
color=3D#00ffff>)</FONT> =3D fileparse<FONT =
color=3D#00ffff>(</FONT>$path,<FONT color=3D#00cd00>'\..*'</FONT><FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"dir is $dir, =
name is $name, extension is $ext\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># dir is /usr/lib/, name is libc, extension is .a
#-----------------------------
</FONT>fileparse_set_fstype<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"MacOS"</FONT><FONT color=3D#00ffff>);</FONT>
$path =3D <FONT =
color=3D#00cd00>"Hard%20Drive:System%20Folder:README.txt"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>(</FONT>$name,$dir,$ext<FONT =
color=3D#00ffff>)</FONT> =3D fileparse<FONT =
color=3D#00ffff>(</FONT>$path,<FONT color=3D#00cd00>'\..*'</FONT><FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"dir is $dir, =
name is $name, extension is $ext\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># dir is Hard%20Drive:System%20Folder, name is =
README, extension is .txt
#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>extension</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$path</FONT> =
=3D <FONT color=3D#ff7f50>shift</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$ext</FONT> =
=3D <FONT color=3D#00ffff>(</FONT>fileparse<FONT =
color=3D#00ffff>(</FONT>$path,<FONT color=3D#00cd00>'\..*'</FONT><FONT =
color=3D#00ffff>))[</FONT><FONT color=3D#cdcd00>2</FONT><FONT =
color=3D#00ffff>];</FONT>
    $ext =3D~ <FONT color=3D#ff7f50>s</FONT>/^\.//<FONT =
color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>return</FONT> $ext<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN528>Program: symirror</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch09/symirror">download=
 the following standalone program</A></FONT>
#!/usr/bin/perl -w
# symirror - build spectral forest of symlinks
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>strict</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>File::Find</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>Cwd</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>my</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#9ac0cd>$srcdir</FONT>, <FONT =
color=3D#9ac0cd>$dstdir</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$cwd</FONT> =3D =
getcwd<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"usage: $0 =
realdir mirrordir"</FONT> <FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#cdad00>@ARGV</FONT> =3D=3D <FONT color=3D#cdcd00>2</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>for</FONT> <FONT color=3D#00ffff>((</FONT>$srcdir, =
$dstdir<FONT color=3D#00ffff>)</FONT> =3D <FONT =
color=3D#cdad00>@ARGV</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$is_dir</FONT> =
=3D <FONT color=3D#b2dfee>-d</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>next</FONT> <FONT color=3D#ffa500>if</FONT> =
$is_dir<FONT color=3D#00ffff>;</FONT>                        <FONT =
color=3D#bebebe># cool
</FONT>    <FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>defined</FONT> <FONT =
color=3D#00ffff>(</FONT>$is_dir<FONT color=3D#00ffff>))</FONT> <FONT =
color=3D#00ffff>{</FONT>
        <FONT color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"$0: $_ =
is not a directory\n"</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> =
<FONT color=3D#00ffff>{</FONT>                                <FONT =
color=3D#bebebe># be forgiving
</FONT>        <FONT color=3D#98fb98>mkdir</FONT><FONT =
color=3D#00ffff>(</FONT>$dstdir, <FONT color=3D#cdcd00>07777</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"can't mkdir $dstdir: =
$!"</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>continue</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ff7f50>s</FONT><FONT color=3D#bebebe>#^(?!/)#$cwd/#;  =
                      # fix relative paths
</FONT><FONT color=3D#00ffff>}</FONT>
<FONT color=3D#43cd80>                    </FONT>
<FONT color=3D#98fb98>chdir</FONT> $srcdir<FONT color=3D#00ffff>;</FONT>
find<FONT color=3D#00ffff>(</FONT>\&amp;wanted, <FONT =
color=3D#00cd00>'.'</FONT><FONT color=3D#00ffff>);</FONT>

<FONT color=3D#ffa500>sub</FONT> <FONT color=3D#b2dfee>wanted</FONT> =
<FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#9ac0cd>$dev</FONT>, <FONT color=3D#9ac0cd>$ino</FONT>, <FONT =
color=3D#9ac0cd>$mode</FONT><FONT color=3D#00ffff>)</FONT> =3D <FONT =
color=3D#98fb98>lstat</FONT><FONT color=3D#00ffff>(</FONT>$_<FONT =
color=3D#00ffff>);</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT color=3D#9ac0cd>$name</FONT> =
=3D $File::Find::name<FONT color=3D#00ffff>;</FONT>
    $mode &amp;=3D <FONT color=3D#cdcd00>07777</FONT><FONT =
color=3D#00ffff>;</FONT>                 <FONT color=3D#bebebe># =
preserve directory permissions
</FONT>    $name =3D~ <FONT color=3D#ff7f50>s</FONT>!^\./!!<FONT =
color=3D#00ffff>;</FONT>              <FONT color=3D#bebebe># correct =
name
</FONT>    <FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#b2dfee>-d</FONT> _<FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>                  =
   <FONT color=3D#bebebe># then make a real directory
</FONT>        <FONT color=3D#98fb98>mkdir</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"$dstdir/$name"</FONT>, =
$mode<FONT color=3D#00ffff>)</FONT>
            <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"can't mkdir =
$dstdir/$name: $!"</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> =
<FONT color=3D#00ffff>{</FONT>                        <FONT =
color=3D#bebebe># shadow everything else
</FONT>        <FONT color=3D#98fb98>symlink</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"$srcdir/$name"</FONT>, =
<FONT color=3D#00cd00>"$dstdir/$name"</FONT><FONT =
color=3D#00ffff>)</FONT>
            <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"can't symlink =
$srcdir/$name to $dstdir/$name: $!"</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#00ffff>}</FONT>
<FONT color=3D#00ffff>}</FONT>

<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN531>Program: lst</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
#% lst -l /etc
#12695 0600      1     root    wheel      512 Fri May 29 10:42:41 =
1998</FONT><FONT color=3D#43cd80> </FONT><FONT color=3D#bebebe>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -