Phím nóng để hiển thị các tệp và thư mục ẩn trong hộp thoại Mở tệp?


262

Câu hỏi này rất giống với Có thể luôn hiển thị ẩn / dotfiles trong hộp thoại Mở / Lưu không? . Làm thế nào để hiển thị các tập tin và thư mục ẩn trong công cụ tìm? cũng liên quan. Tuy nhiên, tôi không muốn luôn cho họ xem, và đó là những gì defaults write ... AppleShowAllFiles ....

Thay vào đó, tôi muốn bật nó khi cần. Tôi đang cố mở .bash_profile, vì vậy tôi cần nó ngay bây giờ:

nhập mô tả hình ảnh ở đây

Linux và Gnome cho phép chúng tôi CTRL+ Hchuyển đổi giữa hiển thị và ẩn các tệp ẩn. Nhưng các phím nóng Gnome không hoạt động trên OS X (dự kiến).

Để hoàn thiện, .bash_profilekhông tồn tại trong thư mục chính:

$ ls ~/.bash_profile 
/Users/jww/.bash_profile

Một câu hỏi liên quan ... Như có thể thấy ở trên, gõ tên tệp trong Finder (hoặc là Spotlight) tìm kiếm không hoạt động. Tôi đã cố gắng nhấp chuột phải để nhận menu ngữ cảnh trong hộp thoại Mở tệp với hy vọng kiểm tra một hộp như "hiển thị tất cả các tệp". Và tôi đã thử menu View để tìm "hiển thị tất cả các tệp" với hộp thoại Mở tệp đang mở.

Tại sao điều này được giấu đi đâu đó? Mục đích nào phục vụ để không cho phép người dùng dễ dàng mở tệp?

Câu trả lời:


452

⌘ CMD+ ⇧ SHIFT+ .tiết lộ các tập tin ẩn trong hộp thoại Finder và Open / Save.

Nếu bạn đang sử dụng bàn phím AZERTY, bạn cũng sẽ cần nhấn fn, do đó, ⇧ SHIFThãy cân nhắc vì bạn đã cần nó để tạo ra ..


Bạn cũng có thể nhấn ⌘ CMD+ ⇧ SHIFT+ Gvà nhập đường dẫn đến thư mục ẩn, giống như trong Terminal ( ⇥ TABtự động hoàn thành cũng hoạt động).

Chỉnh sửa các tập tin ẩn có thể nguy hiểm nếu bạn không biết bạn đang làm gì.


7
Hoạt động với tôi trong chế độ xem Cột nếu tôi thay đổi đường dẫn - chuyển sang ổ đĩa khác và quay lại, v.v. - hoặc thay đổi chế độ xem, thành biểu tượng & quay lại.
Tetsujin

10
Phím tắt "cmd + shift +." dường như hoạt động ở quy mô rộng hơn trong Finder ở Sierra (không chỉ là hộp thoại Mở / Lưu), trong một số chế độ xem.
Niall

4
Wow, không thể tin rằng có một lối tắt cho điều này, cụ thể như thế nào. Cảm ơn!
Ezekiel Victor

1
@MateuszSzlosek, dường như không làm việc cho tôi. cmdshiftG không thể chọn tệp ẩn, trừ khi trước tiên tôi thực hiện cmdshiftdot. Nó làm việc cho bạn?
Pacerier

2
Ah tôi hiểu ý bạn. Vì vậy, Có CMD + SHIFT + G sẽ không chọn tệp ẩn trừ khi bạn tiết lộ chúng bằng cách sử dụng CMD + SHIFT +. Nhưng bạn vẫn có thể điều hướng đến các thư mục ẩn bằng cách sử dụng CMD + SHIFT + G mà không tiết lộ chúng. Điểm tốt!
Mateusz Szlosek

23

Mateusz Szlosek bao gồm phần đầu tiên. Dưới đây là cách tôi đã xử lý phần thứ hai để sử dụng riêng của tôi.

Trong sự vội vàng của mình để gửi câu trả lời của tôi, tôi đã không nhận ra phần thứ hai đã được trả lời. Xem Cách đặt + H để bật hiển thị các tệp ẩn . Những gì tôi cung cấp dưới đây khác nhau bởi một hộp thoại thông báo cho bạn về tình trạng hiện tại.

Tôi đã tạo một dịch vụ bằng ứng dụng Automator. Khi tôi muốn chuyển đổi chế độ xem các tập tin ẩn, tôi chọn "Chuyển đổi tập tin ẩn" từ menu con dịch vụ Finder như bên dưới. (Gợi ý: Nhấp vào hình ảnh để xem tốt hơn.)

Điều này sẽ khiến một trong hai cửa sổ bật lên bên dưới xuất hiện.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Các bước để tạo ra dịch vụ được đưa ra dưới đây.

  1. Mở Automator, chọn một tài liệu mới về loại Dịch vụ.
  2. Kéo hành động "Run Shell Script" vào ngăn dòng công việc.
  3. Chỉnh sửa chứa để xuất hiện như hình dưới đây. (Gợi ý: Nhấp vào hình ảnh để xem tốt hơn.)

    Văn bản cho kịch bản được lặp lại dưới đây.

    STATUS=`defaults read com.apple.finder AppleShowAllFiles 2>/dev/null`
    if [ "$STATUS" == TRUE ]; then
        STATUS=`osascript -e 'tell app "Finder" to display alert "Finder is showing hidden files." buttons {"Cancel", "Hide"}'`
    else
        STATUS=`osascript -e 'tell app "Finder" to display alert "Finder is not showing hidden files." buttons {"Cancel", "Show"}'`
    fi
    if [ "$STATUS" == "button returned:Show" ]; then
        defaults write com.apple.finder AppleShowAllFiles TRUE
        killall Finder
    elif [ "$STATUS" == "button returned:Hide" ]; then
        defaults write com.apple.finder AppleShowAllFiles FALSE
        killall Finder
    fi
    
  4. Lưu (hoặc di chuyển) Toggle Hidden Files.workflowtệp vào ~/Library/Servicesthư mục.
  5. Bạn có thể cần khởi chạy lại ứng dụng Finder để dịch vụ xuất hiện trên menu.

Cập nhật 1

Dựa trên câu trả lời của Mateusz Szlosek, tôi thấy phím tắt ⌘ CMD+ ⇧ SHIFT+ .có thể được thêm vào dịch vụ của tôi. Đi đến Tùy chọn hệ thống và nhấp vào biểu tượng Bàn phím. Chọn "Dịch vụ" rồi "Chuyển đổi tập tin ẩn" trong tiêu đề "Chung". Thay thế "none" bằng phím tắt ⌘ CMD+ ⇧ SHIFT+ ..


Tôi đã làm chính xác như bạn đã nói (có tệp đã nói trong thư mục ~ / Library / Services của tôi), nhưng không có kết quả ngay cả sau khi khởi động lại máy tính.
Walter

@Walter: Tôi đã thêm vào Toggle Hidden Files.workflowSourceforge.net. Xem trang web: Chuyển đổi tập tin ẩn . Bạn có thể tải về quy trình làm việc từ đó. Các hướng dẫn để cài đặt cũng được hiển thị tại trang web này.
David Anderson

Tại sao thay đổi phím tắt tích hợp, hoạt động trong hộp thoại Tệp, thành Dịch vụ, không thoát và thoát khỏi Finder? (Thoát khỏi Finder có thể khiến cửa sổ Finder phía trước đóng lại.)
benwiggy

3

TUYÊN BỐ TỪ CHỐI / CẢNH BÁO

Các tập tin ẩn được ẩn vì một lý do thường. Chỉ sử dụng tập lệnh dưới đây nếu bạn chắc chắn biết mình đang làm gì. Nói cách khác: Nếu bạn phá vỡ hệ thống của mình bằng cách xóa ngẫu nhiên các tệp ẩn, đó là lỗi của chính bạn.


Đây là tập lệnh tôi sử dụng để chuyển đổi chương trình / không hiển thị các tập tin ẩn bên trong Finder .

(Phím tắt riêng của OSX để chuyển đổi các tệp ẩn trong hộp thoại Mở / Lưu đã được Mateusz Szlosek đề cập ở trên)

Sự khác biệt giữa kịch bản của tôi và các kịch bản khác mà tôi đã thấy cho đến nay:

Hầu hết các tập lệnh không làm gì khác sau khi giết Finder. Thông thường, điều này có nghĩa là bạn phải điều hướng trở lại thư mục ban đầu, vì Trình tìm kiếm tự động khởi chạy lại không đáng tin cậy mở thư mục hoạt động cuối cùng của bạn.

Tập lệnh bên dưới thay vào đó mở lại và tập trung vào thư mục hoạt động cuối cùng của bạn, tức là thư mục bạn đang sử dụng khi chuyển đổi, nhưng hiện đang hiển thị (hoặc không hiển thị) các tệp bị ẩn.

Tôi đã gán một lối tắt cho nó (cmd + shift +.) Và thấy làm việc với các tệp ẩn trong Finder thuận tiện hơn rất nhiều bây giờ.

Tín dụng cho Tetsujin, người đã đăng một tập lệnh trên trang này cách đây một thời gian mà tôi đã điều chỉnh để thêm chức năng 'mở lại thư mục cuối cùng'.

on run {input, parameters}
    tell application "Finder"
        set var1 to POSIX path of (target of window 1 as alias)
    end tell
    set newHiddenVisiblesState to "YES"
    set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenVisiblesState is in {"1", "YES"} then
        set newHiddenVisiblesState to "NO"
    end if
    do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState
    ---- Sleep hack mentioned below. 0.5s minimum, 1-2s safer. Ugly, but (probably) unavoidable.
    do shell script "killall Finder; sleep 0.5s"
    tell application "Finder"
        ---- Close other windows if Finder managed to relaunch already
        if application "Finder" is running then
            close every window
        end if
        open (var1 as POSIX file)
        activate
    end tell
end run

Để sử dụng tập lệnh: Mở một quy trình công việc mới trong Máy tự động, kéo vào "Chạy AppleScript", sao chép và dán mã ở trên và lưu trong thư mục dịch vụ của bạn (thường là ~ / Thư viện / Dịch vụ /, afaik).

Đính kèm một phím tắt để thực thi một tập lệnh nên được đề cập ở một nơi khác trên trang web này. Tôi giới hạn phạm vi phím tắt của tôi để Finder một mình.


Nhận xét về phong cách:

Tôi phải dùng đến một chút hack xấu xí, sử dụng 'ngủ' sau khi giết Finder, trước khi tự mở thư mục gốc.

Nếu tôi không ép buộc sự chậm trễ này, có khả năng OSX đã khởi chạy lại Finder và mở một thư mục (không nhất thiết phải là hoạt động cuối cùng, theo kinh nghiệm của tôi). Cùng với lệnh 'mở' của riêng tôi, điều này có thể dẫn đến hiệu ứng khó chịu của hai quá trình Finder (không thể thực hiện được, thậm chí) đang chạy và Finder không hoạt động nữa. Nếu điều này xảy ra, đăng xuất và đăng nhập lại sẽ sửa nó, nhưng rõ ràng nó lãng phí thời gian, vì vậy tôi sử dụng 'giấc ngủ'.

Giá trị giấc ngủ là 0,5 giây đối với tôi, nhưng để đảm bảo an toàn, bạn có thể tăng nhẹ nó (thêm một độ trễ đáng chú ý hơn vào quy trình sau đó).

Nếu ai đó biết cách ngăn chặn Finder khởi chạy lại và mở một số cửa sổ không đáng tin cậy sau khi gửi tín hiệu killall - hoặc một cách khác để thoát khỏi hack 'ngủ' - tôi rất vui khi nghe điều đó!

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.