1

这是我的情况:

我有两个文件夹(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)

我的想法是:

递归启动A1 的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

}

希望可以更清楚。谢谢

4

2 回答 2

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
于 2013-11-13T14:30:06.420 回答
0
rsync --archive --dry-run A1/ B1/

https://stackoverflow.com/tags/rsync/info

于 2013-02-19T22:33:11.620 回答