네트워크 SMB 공유의 Finder(OSX)에서 회색으로 표시된 폴더

네트워크 SMB 공유의 Finder(OSX)에서 회색으로 표시된 폴더

참아주세요, 길고 복잡하지만 TL;DR OSX는 파일(공유 또는 로컬)의 추가 속성을 어디에 숨깁니까?

엔터프라이즈 환경에 문제가 있습니다. Oracle ZFS 설정이 있고 OSX 시스템이 볼륨을 마운트하는 SMB입니다.

사용자가 위치 간에 폴더를 이동하려고 시도하고 중간에 취소하여 두 위치 모두에 있는 폴더가 회색으로 표시되었습니다. Finder에서는 1943년 6월 13일 06:13:00 폴더에 생성 및 수정된 날짜가 표시됩니다. Linux 워크스테이션에서 파일을 통계하면 올바른 생성 및 수정 날짜가 표시됩니다. 그런 다음 Linux 워크스테이션이나 OSX 워크스테이션에서 파일을 터치하고 터미널을 통해 폴더를 볼 수 있으며 폴더에서 열기 명령을 사용할 수도 있습니다. 그러나 Finder를 통해 회색으로 표시되어 열 수 없습니다. 이는 이 파일에 액세스하는 모든 OSX 워크스테이션에 영향을 미쳤습니다. 아무도 그것을 볼 수 없었지만 Windows와 Linux는 괜찮았습니다.

이 문제를 해결하기 위해 더 이상 사용되지 않는 GetFileInfo 및 SetFile 명령을 사용했습니다.

커뮤니티에 대한 제 질문은 이러한 속성이 ls -la 또는 stat를 사용하여 파일에 표시되지 않았기 때문에 어디에 저장되어 있는지입니다. 하지만 GetFileInfo를 사용하여 살펴보니 거기에 있었습니다. OSX가 이상한 Samba 캐싱을 수행하고 이를 서버에 저장하는지 아는 사람이 있습니까? 아니면 이것을 멍청한 .DS_Store 파일에 넣나요?

돕다!!! 부탁해

답변1

OS X에는 기본적으로 이를 지원하지 않는 볼륨에 추가 메타데이터를 저장하는 몇 가지 방법이 있습니다.

  • FAT 볼륨과 같은 경우에는 다음을 사용하여 파일 이름에 "._" 접두사가 붙은 별도의 파일로 메타데이터를 저장합니다.애플더블체재. 예를 들어 원본 파일이 "somefile.txt"이고 이를 FAT32 볼륨에 복사한 경우 데이터는 "somefile.txt"에 복사되고 메타데이터는 "._somefile.txt"로 저장됩니다.

  • SMB를 통해 마운트된 NTFS 볼륨에서는(완전히 이해하지 못하는 특정 조건이 적용되는 경우) 메타데이터를 다음과 같이 저장합니다.NTFS 대체 데이터 스트림.

Oracle 서버의 SMB 구현이 대체 데이터 스트림을 지원하는지 확실하지 않지만 내 추측으로는 지원하는 것 같습니다. Mac은 이를 사용하여 추가 메타데이터를 저장하고 있습니다(그리고 서버는 아마도 이를 ZFS 확장 속성으로 저장하고 있을 것입니다). 서버에서 직접 찾아보거나 Windows 클라이언트에서 볼륨을 마운트하여 다음과 같은지 확인할 수도 있습니다.스트림.exe그들을 볼 수 있습니다.

답변2

나는 1984년 1월 24일 오전 3시를 얻었습니다. 그것은 이스터 에그입니다(첫 번째 Mac이 판매된 날): 전송이 완료될 때까지의 전송 시간 스탬프 중(복사할 때 해당 날짜를 자동 수정하지 않는 일부 결함이 있는 경우) 끝났다)

회색으로 표시된 폴더가 특정 폴더 내의 최상위 수준에 있다고 가정합니다. 그렇지 않으면 gci 명령에 "-recurse"를 추가하고 find 명령에서 "-maxlength 1"을 제거합니다.

ADS가 아님(WinOS 시스템 powershell에서):

    gci -path 'd:\specificfolder' | % {$_.fullname} | gi -stream *

AppleDouble이 아닙니다(좋은 특정 폴더에 연결한 다음 잘못된 특정 폴더(예: 잘못된 폴더에 "-1"이 추가됨)에 연결한 다음 터미널에 연결).

    rm /Volumes/specificfolder-1/._*  && rm /Volumes/specificfolder-1/.DS_Store

Windows에서는 잘못된 폴더가 있어도 문제가 없으며 날짜가 올바르게 표시됩니다. Mac의 경우 Unix(또는 Linux)에서 명령으로 올바른 날짜가 표시되고 ls -la모든 MacOS에서는 회색으로 표시된 증후군이 표시되므로 구체적이지 않습니다. 문제 유형을 복사하는 데 사용한 시스템에(그리고 Windows에서 파일을 복사하면 회색으로 표시된 복사본이 생성되므로 WinOS는 숨겨진 정보를 전송하는 방법을 확실히 알고 있습니다!)

따라서 저는 문제가 있는 위치를 정확히 찾아내고 귀하의 솔루션에 동의하는 데에만 도움을 드릴 수 있습니다(그러나 이 글을 쓰는 현재 OS인 High Sierra에서는 마우스 오른쪽 버튼을 클릭하고 정보 가져오기 또는 선택 및 command+i 기능이 사라지지 않았습니다). 그러나 회색으로 표시된 폴더가 여러 개 있으면 자동화하는 것이 좋습니다. 따라서 무언가를 추가하려면 다음 두 명령을 실행할 수 있습니다.

    find /Volumes/specificfolder/ -maxdepth 1 -type d -exec getfileinfo {} \; \
    | egrep "directory|created" | sed -e 's/directory: "\(.*\)"/\1/' \ 
    | sed -e 's/created: \(.*\)/\1/' \
    | sed -e 's#/Volumes/specificfolder#/Volumes/specificfolder-1#' > temp.txt


    while read oddline; do read evenline; setfile -d "$evenline" "$oddline"; \
    done < temp.txt

관련 정보