今日小练题目📢
写一个shell脚本,遍历某个目录下的txt文件。将这些txt文件做一个备份,备份的文件名增加一个年月日的后缀,比如将a.txt备份为a.txt_20241107
优秀作业🤌🏻
#!/bin/bash
#author: xYLiuuuuuu
#version: v1
#date: 2024-11-07
shuffix=`date +%Y%m%d`
for f in `find ./data/ -type f -name "*.txt"`
do
echo "备份文件$f"
cp ${f} ${f}_${shuffix}
done
敲黑板📝
- 在shell脚本中用反引号将命令括起来
- date
# 格式化输出
>> date +"%Y-%m-%d %H:%M:%S"
2024-11-07 22:50:48
# 显示指定日期和时间的格式
>> date -d "2023-12-14 17:39:08" +"%Y-%m-%d %H:%M:%S
2023-12-14 17:39:08
# 显示指定文件的最后修改时间
>> date -r filename +"%Y-%m-%d"
2024-08-16
# 时间加减
>> date -d "+1 day" +%Y%m%d # 显示后一天的日期
>> date -d "-1 day" +%Y%m%d # 显示前一天的日期
>> date -d "-1 month" +%Y%m%d # 显示上一月的日期
>> date -d "+1 month" +%Y%m%d # 显示下一月的日期
>> date -d "-1 year" +%Y%m%d # 显示前一年的日期
>> date -d "+1 year" +%Y%m%d # 显示下一年的日期
- for循环如何遍历文件
# 1.结合find命令遍历
# 2.使用ls命令生成文件名列表,然后进行遍历
directory="/path/to/directory"
for file in `ls "$directory"`
do
echo "Processing file: $file"
done