<aside> 😱 cp -r package/ ~ . 어라 큰일났다. cp 커맨드로 패키지의 내용물을 내 홈 디렉토리에 복사해 버렸다. 이러고 나니 내 홈 디렉토리가 하나의 어플리케이션이 되어 버려, 열었을 때 해당 앱이 열리게 되어 버렸다.

</aside>

현상

폴더가 갑자기 패키지가 되어 버려, 파인더에서 클릭하거나 open 커맨드를 사용하였을 때 폴더가 열리는 대신에 앱이 열려 버린다.

해결 방법

우선 xattr -d com.apple.FinderInfo <해당 폴더> 를 사용하면 해당 패키지가 다시 폴더로 돌아온다.

그리고 패키지를 복사했다면 Contents 폴더같은 폴더들이 같이 복사되었을 것이다. 해당 파일들을 지워주자.

원인

Unix 시스템에는 xattr(extended file attribute)라는 것이 있는데, 파일에 대한 여러 기타 메타데이터들이 들어 있다. Finder는 com.apple.FinderInfo 라는 xattr 안에 이 파일이 패키지라는 정보를 넣어둔다. 이 정보를 지워주면, 폴더를 다시 패키지로 인식하는 것이다.

애초에 cp 커맨드를 사용할 때에는 첫 번째 인수에 / 가 끝에 붙어있는지 아닌지를 잘 확인해야 한다. 슬래시가 붙어있다면 해당 폴더 안에 있는 내용물들이 복사되고, 붙어있지 않다면 해당 폴더 자체가 복사된다.

역시 CLI에서는 아 다르고 어 다른 부분들이 있는 것 같다.