天天看点

使用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

继续阅读