0

bashスクリプトを使用して、 Windowsマシン上のファイルのサイズを何らかの方法で変更(増加または減少)する必要があります。(ファイルの内容は関係ありません)しかし、私はこのスクリプトをリモートのLinuxマシンから実行する必要があります。サイズ変更のためにtruncateコマンドを選択しました。これはまさに私が必要としていることです。なぜなら、記述子を変更せずに、選択したファイルのサイズを正確変更する必要あるからです。それは非常に重要です。

しかし、私は自分のLinuxマシンで切り捨てを行っておらず、そこにインストールすることはできません(したがって、そこにインストールするように言わないでくださいplz :))特定のカーネルを備えたLinuxマシンに何もインストールできません。これが私のすべての問題の主なオプションです。

そこで、Windowsマシンにcygwinをインストールすることにしました。これは、 truncateコマンドが含まれているためです。また、 fallocateコマンドがあることも知っていますが、私のLinuxマシンにもそれがなく、cygwinにもありません。したがって、別のコマンドがある場合は、それを知りたいです:)

次に、この手順の後、トランケートを介してcygwinターミナルからファイルサイズを変更しようとしましたが、すべて完全に機能します。そして、私が解決しなければならなかった最後の問題は、リモートLinuxからcygwinのbashを実行することでした。そのために、 winexeを選択しました。

最後に、私が選択した方法は次のとおりです。

次を実行するLinuxマシンでwinexeコマンドを実行します。

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

私のWinマシンで。

しかし、それは機能せず、私は理由がわかりません。truncateコマンドは、ファイルのサイズをまったく変更しません。私がタイプするとき

 truncate --help

すべて動作します。Linuxターミナルでヘルプオプションの結果を確認できますが、たとえば

切り捨て-ssomeSizemyFile

動作しません、ファイルのサイズは変わりません。また、truncate -ssomeSizemyFileのエラーコードは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"

このログで、スクリプトの代わりにコマンドとして実際にウィンドウに送信されるものを確認してください。具体的には、「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 に答える