![删除正在使用的文件](https://linux22.com/image/75686/%E5%88%A0%E9%99%A4%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E7%9A%84%E6%96%87%E4%BB%B6.png)
答案1
完整的 RAW 文件位于内存中的假设是不正确的。通常,当打开文件时,进程会获取可用于读/写文件的文件描述符。
当一个文件被一个进程打开,然后在该文件仍然打开时被删除,实际上并不会立即删除该文件。当不再有进程拥有该文件的句柄(文件描述符)时,该文件实际上被删除。您可以使用它lsof
来查看文件是否仍然具有句柄,并且当您删除此类文件时,它通常会列出并附(deleted)
加到该行的文本。
删除打开的文件时也不会回收磁盘空间,因此只要文件处于打开状态,仍然可以安全地使用该文件。当删除的文件不再具有活动文件描述符时,文件系统将回收消耗的磁盘空间。
答案2
如果在删除输入文件之前所有三个 ffmpeg 进程都已打开该文件,那么这很可能会起作用。但是,如果 ffmpeg 关闭文件并重新打开它,则会失败。如果您可以确定 ffmpeg 不会这样做,那么您可能是安全的。