Làm thế nào để đóng tất cả các phiên bản của một chương trình ngay lập tức?


11

Con mèo của bạn gái tôi đang đi trên máy tính xách tay của tôi và tôi đã không chú ý đến cô ấy. Khi tôi chuyển sang kiểm tra, tôi thấy rằng tôi có 32 tab "Trình quản lý lưu trữ". Làm cách nào tôi có thể đóng tất cả chúng ngay lập tức, như thể sử dụng Alt+ F4trên tất cả chúng cùng một lúc.

Câu trả lời:


14

Từ dòng lệnh:

killall file-roller

Bạn có thể làm alt + f4 nhưng bạn cần làm điều đó cho mọi trình quản lý lưu trữ đã được mở.


21
Mặc dù một số người có thể lập luận rằng lệnh "killall" hơi nặng tay, nhưng của bạn vẫn là một giải pháp nhân đạo hơn nhiều so với kill cathành động tôi sẽ đề xuất.
Nick Weinberg

Tôi không nghĩ có một cách dễ dàng hơn để ngăn chặn tất cả. Rất nhiều alt + f4 sẽ làm điều đó nhưng đó không phải là câu hỏi ;-)
Rinzwind

5
@NickWeinberg Tôi đánh giá cao nó :)
mèo

5
Tôi đọc câu hỏi này và trả lời sai. Tôi nghĩ đó là về con mèo đã đóng tất cả, và OP không biết con mèo đã làm thế nào. Tôi đã rất ngạc nhiên khi con mèo có thể viết killall file-roller: D
Viktor Mellgren

1
chết tiệt @ViktorMellgren dừng làm tôi đổ cà phê lên màn hình của tôi
Rinzwind

3

Một cách tiếp cận khác là sử dụng wmctrltiện ích (điều khiển Window Manager). Điều này có thể được sử dụng để báo cho người quản lý cửa sổ giả vờ bạn nhấp vào nút đóng. Điều này tránh được bản chất có khả năng nặng tay killall; ví dụ, một số chương trình có tài liệu chưa được lưu sẽ thoát ngay lập tức khi chúng bị giết (thậm chí nhẹ nhàng), trong khi nhấp vào nút đóng sẽ hiển thị "Bạn có muốn lưu không?" lời nhắc.

Lệnh cơ bản là wmctrl -c WINDOWTITLE, vì vậy trong trường hợp này wmctrl -c "Archive Manager"(giả sử nó không có tệp mở: thay đổi tiêu đề). Thật không may, nó chỉ đóng một lúc, vì vậy chúng ta cần phải làm nhiều hơn để đóng tất cả chúng.

wmctrl trả về thành công nếu tìm thấy kết quả khớp, vì vậy chúng ta có thể lặp cho đến khi thất bại:

while wmctrl -c "Archive Manager"; do sleep 0.1; done

Điều này luôn chọn cửa sổ đầu tiên mà nó tìm thấy, vì vậy chúng ta cần ngủ một chút để tránh liên tục gửi một luồng lệnh đóng đến cửa sổ đầu tiên đang bận đóng - điều đó có thể gây ra lỗi dừng vòng lặp.

Điều này đơn giản và thường hoạt động, nhưng ngủ một khoảng thời gian nhất định và hy vọng cửa sổ đóng lại trước khi chúng tôi thử lại là một cách lộn xộn và chậm để tránh lỗi. Những gì chúng tôi thực sự muốn làm là gửi ngay một tin nhắn gần gũi đến mọi cửa sổ phù hợp.

Chúng tôi có thể tìm thấy tất cả các cửa sổ mở với wmctrl -l. Điều này liệt kê một id cửa sổ số mà chúng ta có thể sử dụng để xác định từng cửa sổ riêng lẻ, ngay cả khi tất cả chúng có cùng tiêu đề. Sau đó, chúng ta cần lọc chỉ các cửa sổ phù hợp ( greplệnh), chỉ rút ra id cửa sổ ( cutlệnh) và gọi wmctrl -i -ccho từng cửa sổ . Các -ilà cần thiết để phù hợp với id cửa sổ thay vì tiêu đề cửa sổ.

for w in $(wmctrl -l | grep "Archive Manager" | cut -d" " -f1); do
    wmctrl -i -c $w
done

Một chút phức tạp khi chỉ cần gõ bất cứ khi nào một con mèo bước trên bàn phím của bạn, nhưng hy vọng là một kỹ thuật tiện dụng để giữ trong hộp công cụ kịch bản của bạn.


2
Vì vậy, bạn mong đợi con mèo gõ một cái gì đó có giá trị tiết kiệm?
Rinzwind

0

Bạn có thể sử dụng phím tắt Ctrl+ Qsẽ đóng tất cả các cửa sổ đã mở của Trình quản lý lưu trữ.


Các Ctrl+ Qphím tắt phổ biến trên Ubuntu (và rất nhiều bản phân phối khác cũng). Nó hoạt động tương tự với hầu hết các ứng dụng tôi đã sử dụng cho đến nay. Đó là, nó sẽ đóng tất cả các cửa sổ của một ứng dụng đang chạy.


Hoàn tác phiếu bầu của tôi, vì tôi không thể xác nhận rằng Ctrl+Qthực sự làm điều đó. Mặc dù Quitmenu đã đóng tất cả các cửa sổ đã mở của Trình quản lý lưu trữ, phím tắt không làm như vậy (ít nhất là trong 14.04).
Clearkimura

1
@clearkimura tôi không thể xác nhận nếu đó là do thực tế là tôi đang sử dụng gnome, hoặc nếu đó là vì các phiên bản Ubuntu, nhưng nó làm việc cho tôi trên Ubuntu 17.04 (với gnome) trong đó sử dụng Archive Manager phiên bản 3.22.3
Dan
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.