关于rsync与node.js readdir()的坑

readdir

node.js readdir()是会读隐藏文件的,'.'和'..'文件除外。

ls -a可查看隐藏文件,可以看到几乎每个文件夹都有'.'和'..'这两隐藏文件。

  • ls / ls -a


  • readdir()


rsync

rsync一个文件 a.txt 到另外一个目标文件夹时,在文件还没传输完成的过程中,是会在目标文件夹创建临时隐藏文件 .a.txt.[randomhash] (randomhash为随机计算的hash值)。

如果想把临时文件定位到其他文件夹,可利用下面参数设置:
-T, --temp-dir=DIR create temporary files in directory DIR

所以在写代码中一定注意存在的坑,如果你要从目标文件夹读取文件 2016-10-01-abc.txt 而你用的是readdir(可以读隐藏文件),并且是根据文件名是否包含 '2016-10-01' 来读的话,如果此时文件还在传输,就坑了,你读到的就是零时隐藏文件 .2016-10-01-abc.txt.[randomhash]

参考

rsync-临时文件-stackoverflow

你可能感兴趣的:(关于rsync与node.js readdir()的坑)