# Create a folder
mkdir archived_PA_2022-01_2022-06
# Move files to new folder
find ./ -newermt "2021-12-31" ! -newermt '2022-06-28' -exec mv /var/log/pentaho/PA –t archived_PA_2022-01_2022-06 {} +
# Archive folder
zip -r archived_PA_2022-01_2022-06.zip /var/log/pentaho/archived_PA_2022-01_2022-06
我这里有一个 Unix 脚本,用于将前 6 个月的文件移动到一个新文件夹。
我想要的是动态移动文件。
例如,今天,2023 年 7 月 6 日,我想根据 2023 年 1 月 5 日到 2023 年 7 月 5 日的时间戳将文件移动到名为“archived_PA_2023-01-05_2023-07-05”的新文件夹。 2023 年 1 月 7 日,我想根据 2023 年 1 月 6 日到 2023 年 7 月 6 日的时间戳将文件移动到名为“archived_PA_2023-01-06_2023-07-06”的新文件夹,依此类推。
我希望这个过程是动态的,其中自动确定时间戳,并相应地创建一个新文件夹,而无需每次运行脚本时手动更改脚本。
我有办法实现这一目标吗?
答案1
我能够弄清楚。
只需使用:
# Create a folder dynamically
mkdir archived_PA_"$(date -d "6 months ago" +%Y-%m-%d)"_"$(date -d "1 day ago" +%Y-%m-%d)"
# Move files to new folder dynamically
find ./ -newermt "6 months ago" ! -newermt "1 day ago" -exec mv -t archived_PA_"$(date -d "6 months ago" +%Y-%m-%d)"_"$(date -d "1 day ago" +%Y-%m-%d)" {} +