Có ai có tập lệnh Mac Terminal để xóa các tập tin ẩn không?


10

Âm thanh nổi ô tô của tôi có thể phát nhạc từ ổ đĩa flash USB, vì vậy tôi đã hỏi về việc sao chép MP3 từ danh sách phát iTunes . Điều đó đã làm việc tốt, nhưng âm thanh nổi của tôi sẽ không phát các tệp MP3. Cuối cùng tôi đã đưa ổ đĩa flash vào máy tính làm việc của tôi chạy Windows 7 và tôi đã phát hiện ra vấn đề: một loạt các tệp ẩn ở định dạng ._[filename].mp3cũng được tải.

Tôi biết rằng trong Windows, bạn có thể xóa các tệp dựa trên các thuộc tính và tôi đã tự hỏi liệu bạn có thể làm tương tự trong Terminal không? Có thể với một tập lệnh mà tôi có thể chạy với Tập dưới dạng tham số?


Tôi cũng có chính xác vấn đề đấy. Nếu các tệp ._ ở đó, âm thanh nổi của tôi sẽ nói "Phương tiện xấu", điều đó hoàn toàn sai. Nó sẽ phát các tệp được đặt tên đúng, nhưng phàn nàn về từng tệp ._. Phải mất một thời gian để xác minh phương tiện truyền thông không tệ, âm thanh nổi trên xe hơi!
Eric

Nhưng đó không phải là lỗi của âm thanh nổi mà nó hút ... Lol. Tôi vừa đặt nó vào máy tính Win7 để bật nhạc tại nơi làm việc và thấy tất cả chúng: Một loạt các tệp bị ẩn 4KB mỗi tệp
Luke Luke

Âm thanh nổi xe hơi nên bỏ qua những tập tin. Trong trường hợp của bạn, chúng không chứa bất kỳ thông tin cần thiết nào. Nhưng đó là vấn đề giống nhau ở mọi nơi. Trình phát phương tiện DLNA của tôi cũng hiển thị những mục này trong khi duyệt.
slhck

Câu trả lời:


21

Các tệp này được ẩn trong OS X vì chúng bắt đầu bằng .và do đó không được hiển thị trong Finder theo mặc định. Không có thuộc tính đặc biệt nào được đặt trong các tệp này ngoài điều đó.

Một cách tiếp cận rất đơn giản sẽ là xóa tất cả các tệp bắt đầu bằng dấu chấm và dấu gạch dưới:

find /Volumes/<your-volume-name> -name '._*' -type f -delete

Lưu ý an toàn: Chạy mà không cần -deletexem tập tin nào sẽ bị xóa. Và đừng bao giờ làm điều này trên toàn bộ Mac HD, chỉ trên ổ USB của bạn.


Đối với một số thông tin bổ sung: Các tệp này được gọi là "Tài nguyên Dĩa" và đôi khi chứa thông tin bạn không muốn xóa. Trong trường hợp sử dụng của bạn, điều đó sẽ tốt mặc dù. Bạn có thể vô hiệu hóa vĩnh viễn việc tạo các tệp này bằng BlueHarvest . Ngoài ra còn có một ứng dụng yêu cầu xóa sạch khối lượng của chúng, nhưng tôi chưa dùng thử và đó là bản beta, vì vậy hãy cẩn thận: Hidden Cleaner .


Không nhận ra rằng ... Thật tốt khi biết. Tôi sẽ thử điều đó tối nay khi tôi về nhà, sau đó đánh dấu câu trả lời của bạn. Cảm ơn
Canada Luke

8

Một giải pháp nữa phù hợp với tôi (MacOS 10.6.8) trong loại thiết bị đầu cuối:

dot_clean "/Volumes/<your-volume-name>"

3

Tôi có cùng một vấn đề với âm thanh nổi trên xe hơi của tôi, 1 tệp / 2 là không thể phát được, bởi vì trình phát cho rằng tệp chấm được tạo bởi MAC OS là một tệp nhạc ... Sau đó, tôi thấy bài đăng này thực sự hữu ích, cảm ơn.

Vì vậy, tôi trở lại ngay bây giờ với một giải pháp cải tiến và miễn phí cho Mavericks:

  1. Tạo Ứng dụng Máy tự động để chạy tập lệnh AppleScript
  2. Sử dụng tập lệnh này:

    on run {input, parameters}
        try
            tell application "Finder" to set allDrives to the name of every disk whose local volume is true and startup is false
            set driveName to {choose from list allDrives with title "DiskCleaner" with prompt "Disk to Clean and Eject:" OK button name "Clean and Eject" cancel button name "Abort"} as text
            set getDriveIdentifier to "diskutil info " & quoted form of driveName & " | grep Ident | awk '{print $3}'"
            set driveIdentifier to do shell script getDriveIdentifier
            try
                do shell script "find /Volumes/" & quoted form of driveName & " -name '.DS_Store' -type f -delete"
                do shell script "find /Volumes/" & quoted form of driveName & " -name '.FBC*' -type f -delete"
                do shell script "find /Volumes/" & quoted form of driveName & " -name '._*' -type f -delete"
                do shell script "rm -rf /Volumes/" & quoted form of driveName & "/.{,_.}{fseventsd,Spotlight-V*,Trashes}"
                display notification "Disk Cleaned"
            on error
                try
                    do shell script "sudo find /Volumes/" & quoted form of driveName & " -name '.DS_Store' -type f -delete" with administrator privileges
                    do shell script "sudo find /Volumes/" & quoted form of driveName & " -name '.FBC*' -type f -delete" with administrator privileges
                    do shell script "sudo find /Volumes/" & quoted form of driveName & " -name '._*' -type f -delete" with administrator privileges
                    do shell script "sudo rm -rf /Volumes/" & quoted form of driveName & "/.{,_.}{fseventsd,Spotlight-V*,Trashes}" with administrator privileges
                    display notification "Disk Cleaned"
                on error
                    display notification "Can't Clean, Permission Denied"
                end try
            end try
            delay 1
            try
                do shell script "diskutil eject " & driveIdentifier
                display notification "Disk Ejected"
            on error
                display notification "Can't Eject, Disk in Use"
            end try
        on error
            display notification "No Disk to Clean and Eject"
        end try
    end run
    
  3. Lưu ứng dụng dưới dạng DiskCleaner.app chẳng hạn

Kịch bản này sẽ yêu cầu bạn chọn đĩa USB để dọn dẹp và đẩy ra. Sau đó, nó sẽ dọn sạch đĩa USB (thử với thông tin đăng nhập của quản trị viên nếu không thành công với thông tin hiện tại), sau đó đẩy ra nếu có thể.

Tất nhiên vẫn còn một số nơi để cải thiện, tôi đã tự viết kịch bản này!

Ngoài ra, bạn có thể linh hoạt để thêm các dòng mã để làm sạch nhiều tập tin hơn.

Thưởng thức!


Điều này thực sự hữu ích, bạn có cân nhắc đăng toàn bộ quy trình làm việc của Automator không?
Konrad

Tuyệt vời, cảm ơn nhiều! Hoạt động với tôi trên OSX10.12.1 nếu tôi xóa {input, parameters}khỏi dòng 1 (chỉ để lại on run). @Konrad: Tôi đã mở 'Trình chỉnh sửa tập lệnh', thực hiện chỉnh sửa nói trên và được lưu vào / Ứng dụng dưới dạng một ứng dụng; công việc hoàn thành. Tôi thích có thể nhìn thấy chính xác những gì đang xảy ra, đó là khó khăn hơn với các giải pháp miễn phí khác.
ptim

Cảm ơn. Tôi đã thử kịch bản của bạn. Khi tôi chạy nó từ ứng dụng Automator để kiểm tra, tôi đã nhấp vào tùy chọn hủy bỏ trong hộp thoại chọn đĩa và vẫn nhận được một dấu nhắc sudo và một thông báo về việc không đẩy đĩa ra. Tôi nghĩ rằng cần phải được sửa chữa. Tôi khuyên bạn nên đi xa hơn một chút trong câu trả lời của mình bằng cách giải thích cách kiểm tra và định cấu hình tập lệnh để có thể sử dụng được từ menu dịch vụ trong Finder.
Đánh dấu Edington

2

Bạn cũng có thể sử dụng Automator để thực hiện điều tương tự nếu thiết bị đầu cuối làm bạn sợ:

Xóa ._ *. Mp3 trong quy trình làm việc của Automator.


Terminal không làm tôi sợ trừ khi tôi làm rm -rf / và nhấn Enter: P Nhưng tôi muốn học Automator, trông rất tuyệt
Luke Luke

À, ừ, đó cũng là một ý kiến ​​hay.
slhck

Các mục Tìm kiếm được chọn có hữu ích ở đây không?
Daniel Beck

Không hẳn vậy. Tôi đã sử dụng máy Mac của người khác và phải làm việc vội vàng.
Digitxp

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.