天天看點

使用for循環建立在指定目錄下批量建立檔案并重命名所有檔案

要求1: 使用for循環在/root/scripts/practice/q1/oldboy 目錄下建立十個檔案.名稱依次為:

oldboy-1,

oldboy-2,

 .....

oldboy-10.

腳本實作:

<code>#!/bin/bash</code>

<code>#Question1</code>

<code>shopt</code> <code>-s expand_aliases</code>

<code>alias</code> <code>ll=</code><code>"ls -l"</code>

<code>cd</code> <code>/root/scripts/practice/q1</code>

<code>#首先判斷目錄是否存在,不存在則建立目錄</code>

<code>if</code> <code>[ ! -e oldboy ]</code>

<code>then</code>

<code>        </code><code>/bin/mkdir</code> <code>oldboy</code>

<code>else</code>

<code>       </code><code>echo</code> <code>""</code>

<code>fi</code>

<code>path=</code><code>/root/scripts/practice/q1/oldboy</code>

<code>cd</code> <code>$path</code>

<code>for</code><code>((i=1;i&lt;=10;i++))</code>

<code>do</code>

<code>      </code><code>/bin/touch</code> <code>oldboy-$i</code>

<code>done</code>

<code>ll $path</code>

腳本執行效果:

<code>#目錄不存在時</code>

<code>[root@localhost q1]</code><code># pwd</code>

<code>/root/scripts/practice/q1</code>

<code>[root@localhost q1]</code><code># ll</code>

<code>總計 4</code>

<code>-rw-r--r-- 1 root root 286 06-26 13:48 q1.sh</code>

<code>[root@localhost q1]</code><code>#</code>

<code>[root@localhost q1]</code><code># sh q1.sh</code>

<code>總計 0</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-1</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-10</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-2</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-3</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-4</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-5</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-6</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-7</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-8</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-9</code>

<code>#目錄存在時</code>

<code>#清空oldboy目錄,但不删除該目錄,模拟目錄存在</code>

<code>[root@localhost q1]</code><code># rm -rf oldboy/*</code>

<code>[root@localhost q1]</code><code># ls</code>

<code>oldboy  q1.sh</code>

<code>[root@localhost q1]</code><code># ll oldboy/</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-1</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-10</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-2</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-3</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-4</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-5</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-6</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-7</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-8</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-9</code>

腳本可以正常完成檔案建立任務.

要求2: 将上訴建立的所有oldboy-檔案,使用for循環批量修改為Linux-.

<code>#Question2</code>

<code>alias</code> <code>ll=</code><code>'ls -l'</code>

<code>for</code> <code>((i=1;i&lt;=10;i++))</code>

<code>     </code><code>/bin/mv</code> <code>oldboy-$i Linux-$i</code>

執行效果:

<code>[root@localhost q1]</code><code># sh q2.sh</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-1</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-10</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-2</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-3</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-4</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-5</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-6</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-7</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-8</code>

<code>-rw-r--r-- 1 root root 0 06-26 13:53 Linux-9</code>

<code>[root@localhost q1]</code><code># ls oldboy/</code>

<code>Linux-1   Linux-2  Linux-4  Linux-6  Linux-8</code>

<code>Linux-10  Linux-3  Linux-5  Linux-7  Linux-9</code>

已經成功完成重命名.

本文轉自 marbury 51CTO部落格,原文連結:http://blog.51cto.com/magic3/1431155

繼續閱讀