我需要使用bash脚本以某种方式更改Windows 机器上文件的大小(增加或减少)。(文件内容无关紧要)但我必须从远程 linux 机器上运行这个脚本。我选择了truncate命令来改变大小,这正是我需要的,因为我需要完全改变所选文件的大小,而不改变它的描述符。这非常重要。
但我没有在我的 linux 机器上截断,我不能在那里安装它(所以不要告诉我在那里安装它 plz :))。我无法在具有特定内核的 linux 机器上安装任何东西 - 这是我所有问题的主要选项。
所以我决定在我的 Windows 机器上安装cygwin ,因为它有truncate命令。我也知道有fallocate命令,但我的 linux 机器也没有,cygwin也没有。所以如果有其他命令我想知道它:)
然后在这些步骤之后,我尝试通过truncate从cygwin 终端更改文件大小,并且一切正常。我必须解决的最后一个问题是从我的远程 linux运行cygwin 的 bash ,我为此选择了winexe。
最后我选择的方式是:
我在运行的linux 机器上运行winexe命令:
winexe myHost "c:\cygwin\bin\bash.exe myScriptWithTRUNCATE"
在我的Win 机器上。
但它不起作用,我不知道为什么。truncate 命令根本不会改变文件的大小。当我输入
truncate --help
一切正常,我可以在我的 linux 终端上看到帮助选项的结果,但是例如
截断 -s someSize myFile
不起作用,文件大小不会改变。truncate -s someSize myFile的错误代码也是0
有什么建议么?