【问题标题】:Change size of files on Windows machine from remote Linux machine从远程 Linux 机器更改 Windows 机器上文件的大小
【发布时间】:2012-06-28 17:35:47
【问题描述】:

我需要使用 bash 脚本以某种方式更改 Windows 机器 上的文件大小(增加或减少)。 (文件内容无关紧要) 但我必须从 远程 linux 机器 运行此脚本。我选择了 truncate 命令来改变大小,这正是我需要的,因为我需要改变 精确 所选文件的大小,不改变它是描述符。这很重要。

但是我不要在我的 linux 机器上 truncate不能在那里安装它(所以不要告诉我在那里安装它请:))。我无法在具有特定内核的 linux 机器上安装任何东西 - 这是我所有问题的主要选项。

所以我决定在我的 Windows 机器上安装 cygwin,因为它有 truncate 命令。我也知道有 fallocate 命令,但我的 linux 机器也没有,cygwin 也没有。所以如果有其他命令我想知道它:)

然后在这些步骤之后,我尝试通过 truncatecygwin 终端 更改文件大小,一切正常。我必须解决的最后一个问题是从我的 remote linux 运行 cygwin 的 bash,为此我选择了 winexe。 p>

最后我选择的方式是:

我在运行的 linux 机器上运行 winexe 命令:

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

在我的 Win 机器上

但它不起作用,我不知道为什么。 截断命令根本不会改变文件的大小。当我输入时

 truncate --help

一切正常,我可以在我的 linux 终端上看到帮助选项的结果,但是例如

截断 -s someSize myFile

不起作用,文件大小不会改变。 truncate -s someSize myFile 的错误代码也是 0

有什么建议吗?

【问题讨论】:

  • 我不明白你在哪里遇到问题。当您在 Windows 机器上的 Cygwin bash 终端中运行 truncate -s <size> <filename> 时,它是否有效?

标签: cygwin truncate winexe


【解决方案1】:

尝试直接在 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 1970-01-01
    • 2015-01-19
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多