Một tương đương với các bản mở của OS X's trên Cygwin?


11

Tôi biết đây có thể là một câu hỏi hơi lạ, cộng với thực tế là tôi đang hỏi nó ở đây. Lý do là bất cứ khi nào tôi hỏi người dân Windows về điều này, hoặc thậm chí người dùng Cygwin thông thường, họ dường như không hiểu tại sao tôi cần chức năng này.

Đối với những người chưa sử dụng "mở" trong trình bao trong Mac OS X, nó hoạt động như thế này:

$ open somepic.jpg

$ mở một sốFile.m

Vì vậy, nó nhìn vào chương trình mặc định được liên kết với tệp và mở nó. Tôi muốn làm điều tương tự từ bên trong Cygwin. Bất kỳ ý tưởng sẽ được đánh giá cao!


Sử dụng MobaXterm, lệnh tương đương với Mac openlà ... open. :) Tôi chưa sử dụng Cygwin nhiều; Tôi thích MobaXterm.
tự đại diện

Câu trả lời:


18
$ cygstart theFile.ext

Điều này sẽ mở theFile.ext với ứng dụng mặc định mà bạn đã đặt cho các tệp .ext.


Chính xác những gì tôi cần. Sẽ đặt:
TK

2
bí danh open = 'cygstart' trong .bashrc của tôi
TK

1
@TK: Ngọt ngào. Vui lòng quay trở lại một lần nữa nếu bạn gặp phải bất kỳ vấn đề cygwin nào nữa. Tôi đã bị mắc kẹt trong đất Windows trong một thời gian dài vì vậy tôi và Cygwin đã trở nên thân thiết thực sự. Chúng ta không phải là bạn thân ... nhưng chúng ta đã học được cách bao dung lẫn nhau. ;)
chújamil

4

Để hoàn thiện, xdg-opentrên Linux đóng vai trò tương tự ở phía Linux.


1

Như đã đề cập, cách tốt nhất có lẽ là cygstart. Bạn có thể thêm bí danh vào .bashrc (hoặc .zshrc hoặc bất cứ điều gì):

alias open='cygstart'

Nhưng bạn cũng có thể làm một số điều với explorer.exe. Có thể nó không tốt bằng cygstartnhưng nếu bạn gặp phải bất kỳ vấn đề nào với cách tiếp cận đó (hoặc bạn cần sử dụng nó với bash shell của Git chứ không phải Cygwin) thì đó là một lựa chọn cần lưu ý.

Trước đây, tôi đã sử dụng bash shell đi kèm với Git cho Windows và tôi đã có

alias open='explorer.exe'

trong .bash_profile của tôi. Nó sẽ mở các thư mục trong Windows Explorer và mở các tệp trong ứng dụng mặc định (theo định nghĩa "mặc định" của Windows).

Nó có những hạn chế, mặc dù. Vì explorer.exe dự kiến ​​sẽ được sử dụng tại dấu nhắc của DOS (nếu ở một dòng lệnh nào đó), đừng mong đợi Globing hoạt động. Ví dụ: nếu bạn muốn mở Gemfile, Vagrantfile, Cheffile và Rakefile cùng một lúc và bạn gõ

open *file

Bạn sẽ chỉ nhận được một cửa sổ Windows Explorer. Tôi không biết logic gì (!?) Đang hoạt động ở đây. Rất có thể explorer.exe chỉ bỏ qua tất cả các đối số, vì nó không biết phải làm gì với nhiều đối số.

cygstart cũng không thông minh lắm, vì nó chỉ mở đối số đầu tiên khi truyền nhiều đối số, nhưng ít nhất nó sẽ mở một tệp, thay vì thư mục hiện tại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.