숨겨진 파일을 제거하는 Mac 터미널 스크립트가 있습니까?


10

내 자동차 스테레오는 USB 플래시 드라이브에서 음악을 재생할 수 있으므로 iTunes 재생 목록에서 MP3를 복사하는 방법 에 대해 물었습니다 . 그것은 잘 작동했지만 내 스테레오는 MP3 파일을 재생하지 않습니다. 결국 플래시 드라이브를 Windows 7을 실행하는 내 업무용 컴퓨터에 넣고 문제를 발견했습니다. 형식의 숨겨진 파일 ._[filename].mp3도로드되었습니다.

Windows에서는 속성을 기반으로 파일을 삭제할 수 있으며 터미널에서 동일한 작업을 수행 할 수 있는지 궁금합니다. 볼륨을 매개 변수로 실행할 수있는 스크립트를 사용하고 있습니까?


나는 똑같은 문제가 있었다. ._ 파일이 있으면 스테레오에 "Bad Media"라고 표시되어 완전히 잘못되었습니다. 제대로 이름이 지정된 파일을 재생하지만 각 ._ 파일에 대해 불평했습니다. 미디어가 나쁘지 않은지 확인하는 데 시간이 걸렸습니다. 카 스테레오였습니다!
Eric

그러나 그것은 스테레오의 잘못이 아닙니다 ... 롤. 난 그냥 내 Win7 컴퓨터에 넣어 음악을 직장에 넣어 모두를 보았다 : 각각 4KB의 숨겨진 파일의 무리
Canadian Luke

카 스테레오 해당 파일을 무시 해야 합니다. 귀하의 경우 필요한 정보가 포함되어 있지 않습니다. 그러나 그것은 모든 곳에서 같은 문제입니다. 내 DLNA 미디어 플레이어는 탐색하는 동안 이것들을 보여줍니다.
slhck

답변:


21

이 파일들은 OS X에서 숨겨져 있으며 .기본적으로 Finder에 표시되지 않기 때문에 숨겨져 있습니다. 이 파일들과 별도로 특별한 속성이 설정되어 있지 않습니다.

매우 간단한 접근 방식은 점과 밑줄로 시작하는 모든 파일을 삭제하는 것입니다.

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

안전 정보 :-delete 제거 할 파일을 보지 않고 실행하십시오 . 그리고 전체 Mac HD에서이 작업을 수행하지 말고 USB 드라이브 에서만 수행하십시오.


추가 정보 :이 파일은 "리소스 포크"라고하며 때로는 삭제하지 않으려는 정보를 포함합니다. 사용 사례에서는 괜찮을 것입니다. BlueHarvest를 사용하여 이러한 파일 생성을 영구적으로 비활성화 할 수 있습니다 . 볼륨을 정리한다고 주장하는 앱도 있지만 시도하지 않았으며 베타 버전이므로주의해서 사용하십시오 : Hidden Cleaner .


그 사실을 몰랐어요 ... 알아서 반가워요. 집에 도착하면 오늘 밤에 시도하고 답을 표시하십시오. 감사합니다
Canadian Luke

8

터미널 유형에서 나를 위해 일한 또 다른 솔루션 (MacOS 10.6.8) :

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

3

플레이어가 MAC OS로 만든 도트 파일이 음악 파일이라고 생각하기 때문에 내 자동차 스테레오와 정확히 같은 문제가 있습니다 .1 파일 / 2는 재생할 수 없습니다.

이제 매버릭스를위한 개선 된 무료 솔루션을 제공합니다.

  1. AppleScript 스크립트를 실행하기위한 Automator 응용 프로그램 생성
  2. 이 스크립트를 사용하십시오 :

    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. 예를 들어 응용 프로그램을 DiskCleaner.app로 저장하십시오.

이 스크립트는 정리하고 꺼내는 USB 디스크를 선택하도록 요청합니다. 그런 다음 USB 디스크를 정리하고 (현재 자격 증명으로 실패한 경우 관리자 자격 증명으로 시도) 가능한 경우 꺼내십시오.

물론 여전히 개선의 여지가 있지만, 나는이 대본을 직접 작성했습니다!

또한 더 많은 파일을 정리하기 위해 코드 줄을 추가 할 수있는 유연성이 있습니다.

즐겨!


이것은 정말 유용합니다. 전체 Automator 워크 플로 게시를 고려 하시겠습니까?
Konrad

대단한 감사합니다! {input, parameters}라인 1에서 제거하면 OSX10.12.1에서 작동합니다 (떠나는 것만 on run). @ Konrad : 나는 '스크립트 편집기'를 열고 위에서 언급 한 편집을 수행하고 / Applications에 앱으로 저장했습니다. 작업이 완료되었습니다. 나는 무슨 일이 일어나고 있는지 정확하게 볼 수있는 것을 좋아합니다. 다른 무료 솔루션에는 까다 롭습니다.
ptim

감사. 나는 당신의 스크립트를 시도했습니다. 테스트하기 위해 Automator 앱에서 실행했을 때 디스크 선택 대화 상자에서 중단 옵션을 클릭했지만 여전히 디스크 꺼내기 실패에 대한 sudo 프롬프트와 메시지가 표시됩니다. 나는 그것을 고쳐야한다고 생각합니다. Finder의 서비스 메뉴에서 사용할 수 있도록 스크립트를 테스트하고 구성하는 방법을 설명하여 답변에서 조금 더 나아갈 것을 제안합니다.
Mark Edington

2

터미널이 무서워하는 경우 Automator를 사용하여 동일한 작업을 수행 할 수도 있습니다.

Automator 워크 플로우에서 ._ *. mp3을 삭제하십시오.


P하지만 자동화를 배우고 싶은 것, 외모가 냉각 : 터미널은 내가하지 않는 한 RF RM은 / Enter를 누르십시오 나를 놀라게하지 않습니다
캐나다 누가 복음

아, 그래도 좋은 생각입니다.
slhck

선택된 파인더 항목 가져 오기가 여기서 유용합니까?
Daniel Beck

실제로는 아닙니다. 나는 다른 사람의 Mac에 있었고 급히 일해야했습니다.
digitxp

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.