如何生成“年月日_时分秒”命名的文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这个问题的处理方式如下: 1. 获取用户指定的文件名 2. 判断目录是否存在,若不存在则创建目录 3. 获取当前时间,格式化为“年月日_时分秒”的形式 4. 组合出备份文件文件名(格式为“文件名_bak_年月日_时分秒”) 5. 将原始文件拷贝到目录下备份文件文件名中 下面是Shell脚本的代码: ``` shell #!/bin/sh # 获取用户指定的文件名 filename=$1 # 判断文件是否存在 if [ ! -f "$filename" ]; then echo "指定的文件不存在,请重新输入。" exit 1 fi # 获取目录名和文件名 dirname=$(dirname "$filename") basename=$(basename "$filename") # 组合出备份文件文件名(格式为“文件名_bak_年月日_时分秒”) backup_time=$(date "+%Y%m%d_%H%M%S") backup_filename="${basename%.*}_bak_${backup_time}.${basename##*.}" # 确认备份目录是否存在,不存在则创建 backup_dir="$dirname/${basename%.*}_backup" if [ ! -d "$backup_dir" ]; then mkdir "$backup_dir" echo "备份目录 $backup_dir 已经创建。" fi # 将原文件拷贝到备份目录下 cp "$filename" "$backup_dir/$backup_filename" if [ $? -eq 0 ]; then echo "$filename 已经成功备份到 $backup_dir/$backup_filename 。" else echo "无法备份文件 $filename 。" exit 1 fi ``` 你可以尝试运行一下来测试一下:输入指定的文件名,程序将自动备份到指定的目录下。 注意:为了避免重名文件的问题,备份文件文件名中附带了毫秒级的时间戳。如果你的系统不支持毫秒级别的时间戳,可能会出现命名冲突。这种情况下,你可以考虑使用其他方式来避免命名冲突。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值