1. 批量创建目录
1.1 当前目录下创建目录
1.在当前目录下创建文件dirName.txt
,该文件用于存放目录名,每行写一个目录名。
注:每行内容末尾不能有空格,用
vscode
打开,选择行尾序列为LF
2.在当前目录下创建文件batch_mkdir.sh
,内容如下:
# 批量创建目录
for dirName in `cat dirName.txt`
do
echo $dirName
mkdir $dirName
done
再执行脚本sh batch_mkdir.sh
,即成功创建了目录test1
、test2
、 test3
# 执行脚本
$ sh batch_mkdir.sh
test1
test2
test3
# 查看目录结构
$ tree
.
|-- batch_mkdir.sh
|-- dirName.txt
|-- test1
|-- test2
`-- test3
3 directories, 2 files
1.2 创建多级目录
1.mkdir -p
可以创建多级目录,如mkdir -p a/b/c
在当前目录下创建了多级目录a -b -c
。
# 创建多级目录
$ mkdir -p a/b/c
# 查看目录结构
$ tree a
a
`-- b
`-- c
2 directories, 0 files
2.想要批量递归创建目录,只需要改动mkdir
为mkdir -p
,dirName.txt
中每行内容格式改为a/b/c
格式即可。
# 批量创建多级目录
for dirName in `cat dirName.txt`
do
echo $dirName
mkdir -p $dirName
done
例:dirName.txt
内容如下:
# 查看dirName.txt内容
$ cat dirName.txt
test1/a
test2/a
test3/a
执行脚本结果如下:
# 执行脚本
$ sh batch_mkdir.sh
test1/a
test2/a
test3/a
# 查看目录结构
$ tree
.
|-- batch_mkdir.sh
|-- dirName.txt
|-- test1
| `-- a
|-- test2
| `-- a
`-- test3
`-- a
6 directories, 2 files
2. 批量修改目录名
2.1 修改当前目录下的目录名
1.在当前目录下创建文件oldName.txt
和newName.txt
,分别用于存放原目录名和新目录名:
注:每行内容末尾不能有空格,用
vscode
打开,选择行尾序列为LF
原目录名如下:
# 查看oldName.txt内容
$ cat oldName.txt
test1
test2
test3
新目录名如下:
# 查看newName.txt内容
$ cat newName.txt
test_1
test_2
test_3
2.在当前目录下创建文件batch_rename_dir.sh
,内容如下:
# 批量修改目录名
lines=`sed -n '$=' oldName.txt` # oldName.txt的行数
for line in `seq 1 $lines`
do
oldName=`sed -n "${line}p" oldName.txt`
newName=`sed -n "${line}p" newName.txt`
mv $oldName $newName
echo "$oldName -> $newName"
done
执行脚本结果如下:
# 执行脚本前的目录结构
$ tree
.
|-- batch_rename_dir.sh
|-- newName.txt
|-- oldName.txt
|-- test1
|-- test2
`-- test3
3 directories, 3 files
# 执行脚本
$ sh batch_rename_dir.sh
test1 -> test_1
test2 -> test_2
test3 -> test_3
# 执行脚本后的目录结构
$ tree
.
|-- batch_rename_dir.sh
|-- newName.txt
|-- oldName.txt
|-- test_1
|-- test_2
`-- test_3
3 directories, 3 files
2.2 修改多级目录
将oldName.txt
和newName.txt
内容格式改为多级目录格式即可,多级目录格式,如a/b/c
。
原目录名如下:
$ cat oldName.txt
test1/a
test2/a
test3/a
新目录名如下:
$ cat newName.txt
test1/b
test2/b
test3/b
执行脚本结果如下:
# 执行脚本前的目录结构
$ tree
.
|-- batch_rename_dir.sh
|-- newName.txt
|-- oldName.txt
|-- test1
| `-- a
|-- test2
| `-- a
`-- test3
`-- a
6 directories, 3 files
# 执行脚本
$ sh batch_rename_dir.sh
test1/a -> test1/b
test2/a -> test2/b
test3/a -> test3/b
# 执行脚本后的目录结构
$ tree
.
|-- batch_rename_dir.sh
|-- newName.txt
|-- oldName.txt
|-- test1
| `-- b
|-- test2
| `-- b
`-- test3
`-- b
6 directories, 3 files
其他批量文件操作,可查看我的另一篇文章:
【Shell】批量操作文件:查找文件路径、批量删除文件、批量重命名文件、批量将文件移至上级目录
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/84879.html