문제

Windows NTF에는 최근에 Hobby-DEV 프로젝트에서 사용했던 "Adlate Data Streams"(ADS)라는 멋지지만 주로 사용하지 않은 기능이 있습니다.

Mac HFS+에는 "이름이 지명 된 포크"라는 비슷하지만 주로 사용하지 않은 기능도 있습니다.

이 프로젝트를 Linux로 포팅 할 생각이지만 Linux의 파일 시스템이 그러한 기능을 가지고 있는지 모르겠습니다.

도움이 되었습니까?

해결책

확장 속성 (EAS)을 지원하는 Windows 및 Linux (및 기타 OS)에 파일 시스템이 있습니다. Windows 지원은 OS/2 Compat에 추가되었으며 백업 API를 통한 해킹 방법을 제외하고는 문서화 된 인터페이스가 없습니다 (Cygwin이하는 일). EAS는 작은 값 만 저장하도록 설계되었습니다. Windows에서 각 EA는 ASCII 이름 (거의 모든 다른 이름은 유니 코드)을 가지고 있으며 파일의 모든 EA의 결합 크기는 64K보다 클 수 없습니다. EAS는 파일이 아닙니다. EA에 파일 핸들을 열고 일반 파일처럼 읽을 수 없습니다.

대체 데이터 스트림은 NTFS가 제공하는 별도의 기능으로 파일 내부에 대체 하위 파일을 제공 할 수 있습니다. 모든 파일에는 이름이없는 데이터 스트림이있어 대체물을 지정하지 않으면 자동으로 열립니다. 광고에 대한 핸들을 열고 단일 (유니 코드) 파일 이름으로 일반 파일처럼 읽을 수 있습니다. 광고는 모든 디스크 파일만큼 클 수 있습니다.

내가 알고있는 Linux의 광고에 대한 정확한 아날로그는 없지만 데이터 값이 작 으면 Linux 포트에서 EAS를 사용할 수 있습니다.

다른 팁

광고의 문제점은 Windows가 ADS가 NON-NTFS 파일 시스템으로 이동하는 두 번째 광고 스트림을 "잃어버린"것입니다. 그것은 그 흐름이 중요하다고 생각하지 않으므로 종종 그들은 주위에 유지되지 않습니다. 네트워크 공유를 통해 CD로 불에 타거나 USB 드라이브를 입는 등에는 액세스 할 수 없거나 사라질 수 없다는 것을 알게 될 것입니다 ...

길고 짧은 것은 응용 프로그램에 대한 매우 좁은 초점이 없다면 (항상 NTFS에서) 광고 스트림을 피할 수 있습니다.

확장 된 속성은 일부 파일 시스템, 특히 XFS 및 (제 생각에는) JFS로 지원됩니다. 크기가 제한되어 있습니다 (XFS의 64K). Reiser4는 임의 크기의 포크를 지원합니다. 그러나 내가 아는 배포판으로 지원되지 않습니다. 또 다른 옵션은 ZFS입니다. 다시는 사용할 수 없습니다.

결국 디렉토리 만 사용하는 것이 더 현명 할 것입니다.

대부분의 Linux 파일 시스템에는 있습니다 extended attributes. 나는 NTFS 스트림에 익숙하지 않으므로 두 가지를 비교할 수 없습니다. 대부분의 파일 시스템에는 확장 된 속성을 활성화하려면 플래그가 장착되어 있어야하므로 일반적으로 다른 사람의 시스템에서는 작동하지 않을 수 있습니다. 그들은 일반적으로 약칭됩니다 xattr 또는 xattrs.

내가 아는 유일한 것은 그 방향으로 다소 들어가는 것입니다. 확장 된 속성, 그러나 내가 광고에 대해 읽은 내용에서 그것은 def입니다. 같은 것이 아닙니다. 정확히 무엇을 사용하고 있습니까?

일반적으로 사용되는 Linux 파일 시스템은이를 지원하지 않습니다. 대신 여러 파일과 적절한 명명 체계 (각 파일 이름에 스트림 인덱스를 추가) 또는 여러 파일을 포함하는 아카이브를 사용할 수 있습니다. 어쨌든 그러한 접근 방식이 다른 방식으로 더 좋다는 것을 알게 될 것입니다. 예를 들어, 누군가가 NTFS 파일 시스템이없는 매체로 파일을 백업하려면 Windows에서 어떻게 발생합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top