linux – 如果Perl试图在正在上传的文件上调用move(),会发生什么?

前端之家收集整理的这篇文章主要介绍了linux – 如果Perl试图在正在上传的文件上调用move(),会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人正在将大小为10Mb的文件FTP到 linux服务器上的文件夹.
文件正在转换时,cron唤醒并触发一个Perl脚本,该脚本旨在查看ftp文件夹,并将其中找到的任何内容移动到某个备用文件夹.我正在使用 File::Copy中的move()函数.Perl进程实际上将文件重命名为其任务的一部分.这是重要的,还是FTP不关心文件系统将文件描述为?

会移动()成功并移动部分文件,离开FTP做什么?
还是会移动失败并返回0?

解决方法

不,移动应该只是让新的位置完成下载过程.您只是将inode从一个位置移动到另一个位置.来自下载程序的打开的文件描述符应该仍然指向它.

我只想重复几个人提到的内容.只要移动操作在同一文件系统上,这只能起作用.如果它作为另一个文件系统,因为它始终属于同一文件系统,所以不能传输inode.最可能的情况是,当时的部分数据被复制到新的位置,而程序仍然下载到不再附加到文件的旧的inode中,因此不能使用.

猜你在找的Linux相关文章