【发布时间】:2012-06-28 17:35:47
【问题描述】:
我需要使用 bash 脚本以某种方式更改 Windows 机器 上的文件大小(增加或减少)。 (文件内容无关紧要) 但我必须从 远程 linux 机器 运行此脚本。我选择了 truncate 命令来改变大小,这正是我需要的,因为我需要改变 精确 所选文件的大小,不改变它是描述符。这很重要。
但是我不要在我的 linux 机器上 truncate 我不能在那里安装它(所以不要告诉我在那里安装它请:))。我无法在具有特定内核的 linux 机器上安装任何东西 - 这是我所有问题的主要选项。
所以我决定在我的 Windows 机器上安装 cygwin,因为它有 truncate 命令。我也知道有 fallocate 命令,但我的 linux 机器也没有,cygwin 也没有。所以如果有其他命令我想知道它:)
然后在这些步骤之后,我尝试通过 truncate 从 cygwin 终端 更改文件大小,一切正常。我必须解决的最后一个问题是从我的 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>时,它是否有效?