0

我需要使用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

有什么建议么?

4

1 回答 1

0

尝试直接在 winexe 命令中给出脚本的名称“myScriptWithTRUNCATE”。示例:- winexe myHost "c:\cygwin\bin\bash.exe myScriptWithTRUNCATE" 还可以通过修改 winexe 命令来检查 winexe 的调试日志:-

winexe -d 5 myHost "c:\cygwin\bin\bash.exe myScriptWithTRUNCATE"

在此日志中查看实际作为脚本命令发送到 Windows 的内容。具体参见“CTRL:发送命令:运行 xxxxx”,查看调试日志中的“xxxxx”是什么。

winexe 让您可以控制 Windows 命令行 (cmd.exe)。在它控制了 cmd.exe 之后尝试运行你的脚本。

根据上面的一些发现,试试这个链接以获得更多帮助 http://blog.dotsmart.net/2011/01/27/executing-cygwin-bash-scripts-on-windows/

于 2012-12-25T08:37:28.747 回答