首页 > 代码库 > 使用for循环创建在指定目录下批量创建文件并重命名所有文件

使用for循环创建在指定目录下批量创建文件并重命名所有文件


要求1: 使用for循环在/root/scripts/practice/q1/oldboy 目录下创建十个文件.名称依次为:

oldboy-1,

oldboy-2,

 .....

oldboy-10.


脚本实现:

#!/bin/bash
#Question1
shopt -s expand_aliases
alias ll="ls -l"

cd /root/scripts/practice/q1

#首先判断目录是否存在,不存在则创建目录
if [ ! -e oldboy ]
then
        /bin/mkdir oldboy
else
       echo ""
fi

path=/root/scripts/practice/q1/oldboy
cd $path
for((i=1;i<=10;i++))
do
      /bin/touch oldboy-$i
done

ll $path

脚本执行效果:

#目录不存在时
[root@localhost q1]# pwd
/root/scripts/practice/q1
[root@localhost q1]# ll
总计 4
-rw-r--r-- 1 root root 286 06-26 13:48 q1.sh
[root@localhost q1]#
[root@localhost q1]# sh q1.sh
总计 0
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-1
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-10
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-2
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-3
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-4
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-5
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-6
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-7
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-8
-rw-r--r-- 1 root root 0 06-26 13:51 oldboy-9


#目录存在时
#清空oldboy目录,但不删除该目录,模拟目录存在
[root@localhost q1]# rm -rf oldboy/*
[root@localhost q1]# ls
oldboy  q1.sh
[root@localhost q1]# ll oldboy/
总计 0
[root@localhost q1]# sh q1.sh

总计 0
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-1
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-10
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-2
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-3
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-4
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-5
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-6
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-7
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-8
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-9
[root@localhost q1]# ll oldboy/
总计 0
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-1
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-10
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-2
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-3
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-4
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-5
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-6
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-7
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-8
-rw-r--r-- 1 root root 0 06-26 13:53 oldboy-9


脚本可以正常完成文件创建任务.


要求2: 将上诉创建的所有oldboy-文件,使用for循环批量修改为Linux-.


脚本实现:

#!/bin/bash
#Question2
shopt -s expand_aliases

alias ll=‘ls -l‘
path=/root/scripts/practice/q1/oldboy
cd $path
for ((i=1;i<=10;i++))
do
     /bin/mv oldboy-$i Linux-$i
done

ll $path

执行效果:

[root@localhost q1]# sh q2.sh
总计 0
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-1
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-10
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-2
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-3
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-4
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-5
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-6
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-7
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-8
-rw-r--r-- 1 root root 0 06-26 13:53 Linux-9
[root@localhost q1]# ls oldboy/
Linux-1   Linux-2  Linux-4  Linux-6  Linux-8
Linux-10  Linux-3  Linux-5  Linux-7  Linux-9
[root@localhost q1]#


已经成功完成重命名.



本文出自 “史振宁的技术博客” 博客,请务必保留此出处http://magic3.blog.51cto.com/1146917/1431155