bash - Bash:按空格分割文件名?备份回滚脚本
问题描述
我需要一些关于 Bash 的帮助。我是一个 Python/Rust 人,不太了解 bash。我有一个“备份”脚本,它将选定的文件复制到“$filename $datetime.backup”文件中。现在我需要编写一个回滚脚本,它将最新的备份文件复制到原始文件上(没有空格和日期时间以及备份后缀)。任何指南将不胜感激。
备份脚本,为您提供方便:
set -e
DT=$(date --iso=seconds)
for f in $*
do
OLD="${f%/}"
NEW="${f%/} $DT.backup"
cp --no-clobber --recursive "$OLD" "$NEW"
done
解决方案
使用参数扩展来获取原始名称。
for b in *.backup ; do
original=${b% *}
cp "$b" "$original"
done
${b% *}
从 $b 中删除最后一个空格之后的所有内容。
推荐阅读
- pandas - 如何将熊猫 date_range 移动 n 年
- c++ - 如何将一个 std::queue 的内容附加到另一个
- python - 是否可以仅使用一个整数变量使用 or-tools 来计算 argmax?
- django - 无法更改 Django 调试语言
- katalon-studio - 如何在 Katalon Studio 中获取测试用例名称
- java - 获取端点的指标
- c++ - 使用新的展示位置作为复制赋值运算符不好吗?
- c++ - 将带有自动参数的 lambda 传递给另一个函数是否合法
- java - 值未正确插入 SQLite 数据库
- windows - SET 命令不回显 FOR /F 循环参数值