在Linux中批量創建和修改文件或目錄

1. 用一條命令直接創建

[fred@Royalmile Auto_Ops]$ touch `seq 10`
[fred@Royalmile Auto_Ops]$ ls
1  10  2  3  4  5  6  7  8  9
[fred@Royalmile Auto_Ops]$ touch linux-{A..G}
[fred@Royalmile Auto_Ops]$ ls
linux-A  linux-B  linux-C  linux-D  linux-E  linux-F  linux-G
[fred@Royalmile Auto_Ops]# echo {01..10}
01  02  03  04  05  06  07  08  09  10
[fred@Royalmile Auto_Ops]# touch {01..10}
[fred@Royalmile Auto_Ops]# ls
01  02  03  04  05  06  07  08  09  10
[fred@Royalmile Auto_Ops]$ mkdir $(echo {a..g})
[fred@Royalmile Auto_Ops]$ ls
a  b  c  d  e  f  g
[fred@Royalmile Auto_Ops]$ mkdir {h..n}
[fred@Royalmile Auto_Ops]$ ls
h  i  j  k  l  m  n

2. 編寫shell腳本使用for循環在/home/fred目錄下批量創建10個文件,文件名分別以1,2,...6結尾

#!/bin/bash
for f in `seq 6`
do
    [ ! -d /home/fred ] && mkdir -p /home/fred
    touch /home/fred-$f
done

3. 編寫shell腳本將以上創建的所有文件的前綴fred改爲linux(ls和sed結合實現)

#!/bin/bash
[ -d /home/fred ] && cd /home/fred
for f in `ls fred*`
do
    mv $f $(echo $f | sed 's#fred#linux#')
done

4. 使用rename命令直接修改名字

[fred@Royalmile Auto_Ops]$ touch linux-{A..G}
[fred@Royalmile Auto_Ops]$ rename linux centos linux??
[fred@Royalmile Auto_Ops]$ ls
centos-A  centos-B  centos-C  centos-D  centos-E  centos-F  centos-G

5. 結合ls和awk實現批量改名

[fred@Royalmile Auto_Ops]$ ls /home/fred/
linux-1  linux-2  linux-3  linux-4  linux-5  linux-6
[fred@Royalmile Auto_Ops]$ ls /home/fred/linux-* | awk -F'-' '{print "mv "$0" "$1$2}' | /bin/bash
[fred@Royalmile Auto_Ops]$ ls /home/fred/
linux1  linux2  linux3  linux4  linux5  linux6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章