为了账号安全,请及时绑定邮箱和手机立即绑定

为什么某些 Cygwin 文件不可执行?

为什么某些 Cygwin 文件不可执行?

喵喵时光机 2022-07-06 18:23:28
我正在尝试从 Java 应用程序在 Windows 上执行 Cygwin 命令。在 cygwin 的 bin 中,我注意到一些文件是应用程序类型(.exe),而其他文件(如 zcat 和 zless)没有扩展名,只是文件类型。我已将 bin 添加到 Windows PATH 中,并且似乎只能从 cmd 执行 .exe 文件。下面的代码有效。ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "ls");Process p = pb.start();我想使用 zcat 和 zless 之类的东西,但它们不可执行,并且 cmd 抱怨“zcat”不被识别为内部或外部命令、可运行程序或批处理文件。如果我手动将文件更改为 .exe,我会弹出一个错误提示 zcat 由于与 64 位版本的 Windows 不兼容而无法启动或运行。我已经安装了 64 位版本的 cygwin (setup-x86_64)。为什么 cygwin 的所有 bin 都不是可执行文件?
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

大多数 cygwin 程序不是二进制程序,而是脚本之一。该命令file可以为您提供文件类型的描述:


$ file zcat

zcat: POSIX shell script, ASCII text executable

尽管


$ file cat

cat: PE32+ executable (console) x86-64, for MS Windows

读取zcat的前5行


$ head -n 5 zcat

#!/bin/sh

# Uncompress files to standard output.


# Copyright (C) 2007, 2010-2016 Free Software Foundation, Inc.

我们在第一行#!看到说这是一个由 /bin/sh解释器执行的脚本。


在其他情况下,我们可以有


$ head -n5 2to3

#!/usr/bin/python2.7.exe

import sys

from lib2to3.main import main


sys.exit(main("lib2to3.fixes"))

2to3python 2.7脚本也是如此


查看完整回答
反对 回复 2022-07-06
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

没有其他人说过这个,所以对于其他正在寻找这个的人......如果你需要从cmd窗口运行“z......”命令并且cygwin你的路径中有 bin 目录,你可以运行它们(是的,它是有点笨拙)使用 bash,如

bash zcat file.gz

等等

或者您可以直接从cygwin终端运行它们。

FWIW 我必须找到“更多”实用程序并加载它们。出于某种原因,它们不在我下载的初始软件包中


查看完整回答
反对 回复 2022-07-06
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号