Linux脚本练习之script008-将个人用户下任意目录下所有文件的扩展名改为 `.bak`。
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux脚本练习之script008-将个人用户下任意目录下所有文件的扩展名改为 `.bak`。相关的知识,希望对你有一定的参考价值。
script008
题目
将个人用户下任意目录下所有文件的扩展名改为 .bak
。
分析
本题考查的知识点:
- 自定义函数
- 变量和局部变量
find
命令grep
命令for...in
循环语句$
mv
命令
思路:
- 找到指定目录下的所有普通文件,注意排除目录和隐藏文件。
- 循环遍历所有普通文件路径,通过
$
提取文件路径但去处后缀。如/home/zhangsan/hello.txt
得到/home/zhangsan/hello
。 - 然后对每个文件进行重命名。
脚本
#!/bin/bash
####################################
#
# 功能:将个人用户下任意目录下所有文件的扩展名改为 .bak。
#
# 使用:直接执行,无须任何参数。
#
####################################
# 声明变量
# 起始目标目录,即用户的家目录
DEST_DIR="/home/zhangsan"
# 改变后的文件后缀名
DEST_SUFFIX=".bak"
##
# 修改指定目录下所有文件的扩展名
##
function change_extension_name()
# 获取指定目录下的所有普通文件
local files=$(find "$DEST_DIR" -type f | grep -v "/\\\\.")
# 循环遍历所有找到的文件路径
for file in $files ; do
# 获取文件除了后缀名前面的内容,如 /home/zhangsan/hello.txt 得到 /home/zhangsan/hello
local prefix="$file%.*"
# 对文件进行重命名
mv "$file" "$prefix$DEST_SUFFIX"
done
##
# 主函数
##
function main()
# 在主函数中调用
change_extension_name
# 调用主函数
main
测试
执行 ./script008.sh
启动脚本:
以上是关于Linux脚本练习之script008-将个人用户下任意目录下所有文件的扩展名改为 `.bak`。的主要内容,如果未能解决你的问题,请参考以下文章
Linux脚本练习之script015-实现禁止和允许普通用户登录系统。
Linux脚本练习之script025-判断用户输入的参数是否为正整数。
Linux脚本练习之script038-统计一共有多少个普通用户。
Linux脚本练习之script024-判断用户输入文件路径,显示其文件类型(普通,目录,链接,其它文件类型)。
Linux脚本练习之script032-任意用户登录系统时,显示红色字体的警示提醒信息 `Hi, dangerous!`。