复制或移动具有临时名称的大文件,直到文件完全传输到 Linux 中的目的地

复制或移动具有临时名称的大文件,直到文件完全传输到 Linux 中的目的地

我正在尝试将大文件 (15 GB) 复制/移动到 Linux 中的目录,并希望依赖于该事件。现在假设我有一个名为 的文件abc.txt,并且我正在运行以下命令:

mv /usr/tmp/abc.txt /usr/data/

当移动过程开始时,我在数据目录中看到一个具有实际文件名的文件,即abc.txt但数据仍在传输中。当数据目录列出其目录中的文件时,abc.txt我的依赖进程认为该文件可用,并启动依赖进程,但是文件未完全移动,因此我的依赖进程过早触发。

有没有办法可以移动具有临时名称的文件,即在数据传输正在进行时它将使用临时名称(某些交换文件名)并在完全传输时将名称更改为实际文件?

答案1

您必须在两个不同的文件系统之间移动,因此文件实际上被复制。然后尝试先复制它,完成后,在目的地内移动。这应该做:

mv /usr/tmp/abc.txt /usr/data/.abc.txt && mv /usr/data/.abc.txt /usr/data/abc.txt

我假设您的观看过程无法识别隐藏文件。否则,您可以在目标位置创建一个临时目录或类似的目录。

相关内容