【发布时间】:2018-04-05 01:57:54
【问题描述】:
系统:Windows 10 主机上 VirtualBox 5.1.26 中的 Arch Linux
我尝试在终端中使用类似 sed 的 perl 来替换输入文件:
perl -i -p -e 's/orig/replace/g' input_file
但我总是得到:
Can't remove input_file Text file busy, skipping file
仅当文件位于 VirtualBox vboxsf 共享中时才会发生这种情况。使用所有其他工具(sed、mv、vim 或其他工具)更改文件没有问题。
这个问题似乎与:
我在谷歌上找不到任何解决方案:(
更新:
使用perl -i.bak -p -e 's/orig/replace/g' input_file 我收到类似的消息:
Can't rename input_file to input_file.bak: Text file busy, skipping file.
这与 gedit 显示的消息完全相同:
所以这是相同的行为,但谷歌搜索我只能找到 Gedit 主题。 perl -i 似乎没有人注意到这一点。
【问题讨论】:
-
这不是 Perl 问题。
-
没有值的
-i选项在 Windows 文件系统上不起作用。该进程阻止自己删除原始输入文件。试试-i.bak或类似的。
标签: perl sed virtualbox