【发布时间】:2018-04-24 06:57:40
【问题描述】:
我有一个脚本可以监控列表 ($docs) 中的一组文件夹名称。 如果它找到 not empty 文件夹,它应该: 重命名和移动文件并为其添加时间戳。
这是我目前得到的:
docs="/home/user/docs.txt"
cat $docs | while read line
do
if find "$line" -mindepth 1 -print-quit | grep -q .; then
find $line -type f | rename 's:(^|.*/)([^/]*)/([^/]*)$:/tmp/$2$3
else
echo "empty folders" $line
fi
done
文件 docs.txt 是一组文件夹,如下所示:
/foldername
/anotherfoldername
此脚本正确重命名我的文件(folderplacement_filename.ext),并将它们移动到 /temp/ 目录。
但挑战是附加一个“日期+%d%m%Y%H%M%S”字符串,我找不到任何方法可以优雅地将其添加到我的重命名字符串中。
添加 $(date),忽略任何额外的格式。
例如将其附加到重命名 's:(^|./)([^/])/([^/]*)$:/tmp/$2$3$(date) 给出类似“folderplacement_filename.ext 4 24 35 20 48 111 123 321”的文件名
我希望文件看起来像“folderplacement_filename11102017011632.ext”(在 .ext 之后附加日期也可以。)
这可能是我需要以正确的方式引用或括号的内容,但我无法弄清楚。
【问题讨论】: