Я установил 64-битный cygwin в папку C: \ cygwin
Бег
"C:\cygwin\bin\sh.exe" /bin/ls
приводит к
/bin/ls: /bin/ls: cannot execute binary file
Зачем?
Runnin sh и ls по отдельности работает.
C:\test>"C:\cygwin\bin\sh.exe"
sh-4.4$ /bin/ls
foreign_keys functions procedures props.sql schemas.sql tables
Используя команду file, я вижу, что двоичные файлы 64-разрядные.
C:\test>"C:\cygwin\bin\sh.exe"
sh-4.4$ file /bin/sh
/bin/sh: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
sh-4.4$ file /bin/ls
/bin/ls: PE32+ executable (console) x86-64, for MS Windows
sh-4.4$
Я пробовал несколько вариантов и вижу, что вы можете использовать:
C: \ cygwin64 \ bin \ sh.exe -c "/ bin / ls"
или
C: \ cygwin64 \ bin \ bash -c "/ bin / ls"