我正在尝试创建一个交互式脚本,让我选择一个开始日期和时间,然后递归到当前目录/子目录,找到所有 flac 音频文件,按目录/子目录/文件名排序,然后从初始用户输入的开始日期开始以 1 秒为单位更新时间戳。
#!/bin/bash
# Description: change mtime using touch with time offset
# get starting date and time
read -p "Starting date and time (ex. 2012-03-22 22:00:05): " start_date
# convert to unix timestamp
start() {
date -d "${start_date}" +%s
}
# find all flac files inside a directory
flac() {
find . -type f -name "*.flac" | sort
}
for file in $flac; do
touch -d @$start "$flac"
# increment by 1 second
$start=$(start + 1)
done
需要考虑的几点是:你不需要函数
start
,你需要变量。别忘了你以后要用它做数学运算。所以你的代码如下:应该
您不需要函数来获取文件列表,您可以将其合并到循环中。类似这样的代码可以完成工作: