这是我的情况:
我有两个文件夹(A1和B1),我希望A1中包含的每个文件和子文件夹都被复制到带有时间戳的B1中。我还想要,如果文件被修改,必须使用新的时间戳将其复制到B1中。
这样:
A1 contains: pluto.txt pippo(empty folder)
B1 contains: pluto_timestamp.txt pippo(empty folder)
2天后:
A1 contains: pluto.txt pippo(empty folder)
B1 contains: pluto_timestamp.txt pluto_timestamp2days.txt pippo(empty folder)
我的想法是:
以递归方式启动 stat 命令,并将输出保存到txt文件中。
就像一个轮询器,当我的脚本被安排时,我想检查每个文件的修改字段,看看是否有一些文件被修改过。也许我可以通过另一次启动 stat 命令
来做到这一点PSEUDOCODE
while (A1 =! empty) {
open stat_result.txt
if file_A1 already exists in_B1
if modify_date_A1 =! modify_date_B1
cp file_A1_TIMESTAMP into B1
else do nothing
else
cp file_A1_FILESTAMP into B1 #because it doesn't exist yet
}
希望它可以更清楚。感谢
答案 0 :(得分:0)
rsync --archive --dry-run A1/ B1/
答案 1 :(得分:0)
# first create the directories in B1, if they do not already exist
# then copy the timestamped files to B1, if they are not there yet
(cd A1; find -type d)|(cd B1; xargs mkdir -p)
(cd A1; find -type f)|
while read file
do cp -n A1/$file B1/$(<<<$file sed "s,.*/[^.]*,&_`date -rA1/$file +%F_%T`,")
done