비주얼스튜디오 파일 및 폴더명에 대해 질문있습니다.안녕하세요 현재 맥북을 사용중이고 여기에 외장하드를 연결하여 폴더를 만들고 이걸 비주얼스튜디오로 사용하고 있습니다. 처음에는 아무이상없이 잘 사용하다가 어느 순간부터 파일 및 폴더를 만들면 아래 이미지처럼 앞에 ._ 이런게 붙여져서 하나가 더 생성이 되더라구요
맥북에서 외장하드를 사용할 때, 비주얼스튜디오에서 파일이나 폴더를 생성하면 ._가 붙은 파일들이 함께 생기는 문제는 주로 macOS의 "AppleDouble" 포맷과 관련이 있음. 이 문제는 주로 macOS가 네트워크 파일 시스템이나 외장하드와 같은 다른 운영체제에서 인식할 수 없는 파일 메타데이터를 저장할 때 발생함.
왜 ._ 파일이 생기는 걸까?
macOS는 파일에 대한 추가적인 메타데이터를 저장하는데, 이 정보에는 아이콘, 파일의 마지막 수정 시간, Finder에서 설정한 태그 등이 포함될 수 있음. 이 정보들은 macOS에서만 필요하고, 다른 운영체제(예를 들어, Windows나 Linux)에서는 의미가 없으므로, macOS는 이 메타데이터를 별도의 ._로 시작하는 숨겨진 파일에 저장함.
외장하드와 같은 장치에 macOS가 데이터를 기록할 때, 원본 파일과 함께 이 추가적인 메타데이터 파일을 생성하게 되는데, 이 파일은 해당 파일에 대한 정보를 다른 시스템에서 읽을 수 있도록 도와주는 역할을 함. 하지만 때로는 이 파일들이 불필요하게 보이거나 혼란을 줄 수 있음.
._ 파일을 없애려면?
이 파일들을 삭제하거나 생기지 않게 하려면 몇 가지 방법이 있음:
숨겨진 파일 보기 비활성화
비주얼스튜디오나 Finder에서 ._ 파일을 보지 않도록 할 수는 있지만, 이 파일들이 실제로 생성되는 것을 막을 수는 없음. 이런 파일을 보지 않도록 하려면 Finder에서 숨김 파일을 보지 않도록 설정할 수 있음. 터미널을 열고 아래 명령어를 입력하면 숨겨진 파일을 안 보이게 할 수 있음.
defaults write com.apple.finder AppleShowAllFiles -bool false
killall Finder
AppleDouble 파일 삭제
외장하드에서 ._ 파일을 삭제하려면 터미널을 사용해야 함. 다음 명령어를 입력하면 외장하드에서 ._ 파일을 일괄적으로 삭제할 수 있음.
find /path/to/external/drive -name '._*' -exec rm -f {} \;
/path/to/external/drive는 외장하드의 실제 경로로 변경해야 함.
비주얼스튜디오에서 외장하드 사용 시 주의
비주얼스튜디오에서 작업할 때, 특히 macOS와 외장하드를 연결하여 사용하는 경우, 파일을 저장하고 나서 바로 다른 운영체제에서 열지 않도록 해야 함. 만약 다른 운영체제에서 열면 그곳에서 macOS의 메타데이터 파일이 나타날 수 있음.
파일 시스템 변경 고려
외장하드가 FAT32 또는 exFAT와 같은 호환성 있는 파일 시스템으로 포맷되어 있을 경우, macOS는 추가적인 메타데이터를 별도로 관리하기 위해 ._ 파일을 생성할 수 있음. NTFS로 포맷된 드라이브에서도 이러한 파일들이 생길 수 있기 때문에, 가능하다면 macOS와 호환되는 HFS+ 또는 APFS 파일 시스템으로 포맷하는 방법도 고려할 수 있음.
외장하드에서 macOS의 특수한 파일 메타데이터 비활성화
외장하드를 사용할 때 추가적인 메타데이터를 저장하지 않도록 설정할 수 있음. 외장하드가 macOS에서만 사용될 예정이라면, System Preferences > Sharing > File Sharing에서 Apple Filing Protocol (AFP)을 사용하여 네트워크에 연결한 후 이 설정을 통해 추가적인 메타데이터 생성을 방지할 수 있음.
._ 파일은 macOS에서 다른 운영체제와 파일을 호환시키기 위한 메타데이터 파일이므로, 이를 완전히 없애는 것은 어렵지만, 삭제하거나 숨기거나, 파일 시스템을 변경하는 방법으로 다소 해결할 수 있음. 비주얼스튜디오에서는 이러한 문제를 자동으로 처리하기 어려운 경우가 많기 때문에, 사용자가 수동으로 이를 관리해야 할 때가 많음.
티스토리 구독 해두시면 다양한 정보들을 무료로 구독해 보실 수 있어요.