冯俊生 發表於 2024-1-12 00:00:00

Linux 重命名命令自制详细介绍

<p>
        <strong>Linux 重命名命令</strong></p>
<p>
        相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令。(虽然可以间接的使用mv来实现)。下面我就来自己写一个简单的重命名命令。</p>
<p>
        准备工作</p>
<ol>
<li>
                操作系统: Linux内核的系统都可以</li>
        <li>
                Shell:我用的系统默认的bash,(其实这个无所谓了)</li>
        <li>
                基础: 了解关于shell脚本的基本的语法即可。</li>
</ol>
<p>
        代码实现</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_107436">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash preprocessor bold">#!/bin/bash</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments">#filename: rename.sh</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="bash comments">#description: rename file or directory by batch</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash comments">#attention: when rename directory,please end them both with '/'</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                         </div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="bash plain">oldname=$1</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="bash plain">newname=$2</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                         </div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="bash functions">mv</code> <code class="bash plain">$oldname $newname</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="bash keyword">if</code> <code class="bash plain">[ $? -</code><code class="bash keyword">eq</code> <code class="bash plain">0 ];</code><code class="bash keyword">then</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash plain">Rename Success;</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="bash keyword">else</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="bash spaces">  </code><code class="bash functions">echo</code> <code class="bash plain">Rename Failed!;</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="bash keyword">fi</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        使用分析</p>
<p>
        关于这个命令的使用,有以下要进行讨论的地方。</p>
<p>
        首先:</p>
<p>
        我们需要赋予此文件以执行权限,否则只能通过shell解释器间接的执行了。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_936981">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">chmod</code> <code class="bash plain">755 rename.sh</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后:</p>
<p>
        是关于位置变量的介绍以及使用。$0代表本可执行文件,如./rename.sh</p>
<ul>
<li>
                $1: 指的是执行此命令时的第一个参数</li>
        <li>
                $2: 指的是执行此命令时的第二个参数</li>
        <li>
                $? 为上一条命令执行成功与否的返回值,成功则返回0,否则不为0</li>
</ul>
<p>
        最后:</p>
<p>
        然后到了最重要的一步了,那就是参数使用的时候需要注意:</p>
<p>
        单文件:对于单文件只需要注意文件名称即可<br>
        目录: 对于目录文件,两个参数的末尾必须都加上'/',否则会出错。这是由于mv指令默认的要求。</p>
<p>
        <strong>使用方式示例</strong></p>
<p>
        这里可以把这条命令的路径添加到我们的环境变量中,这样我们就可以不敲此命令的完整的路径就可以很好的执行了。方法如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_291151">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash functions">export</code> <code class="bash plain">PATH=</code><code class="bash string">"$PATH"</code><code class="bash plain">:</code><code class="bash string">"/home/mark/temp/myscripts/rename.sh"</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash comments"># 我的rename.sh路径如上所示</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterbash" id="highlighter_460129">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="bash comments"># 对单文件</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="bash plain">rename.sh temp.txt tmp.txt</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                         </div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="bash comments"># 对目录文件</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="bash plain">rename.sh directory1/ directory2/</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!</p>
頁: [1]
查看完整版本: Linux 重命名命令自制详细介绍