cd에 대한 "-@" 인수는 어떻게 작동합니까?

cd에 대한 "-@" 인수는 어떻게 작동합니까?

bashhelp cd(및 ) 에 대한 매뉴얼 페이지에는 "확장 속성이 있는 파일을 파일 속성이 포함된 디렉토리로 렌더링"하기 위한 cd지원 -@인수("지원하는 시스템에서")가 언급되어 있습니다.

이것을 사용하는 예가 있습니까? (이상적으로는 공통 파일을 사용하거나 예제를 만든 설정을 사용합니다. (저는 currnelt 에 익숙하지 않습니다. xattr)

지원은 어디에 있나요? s는 모든 곳에서 지원 됩니까 xattr, 아니면 더 많은 커널 지원이 필요합니까? (즉, xattr지원되는 OS X, Solaris, FreeBSD, Linux 등의 버전에서 사용할 수 있나요?)

내 생각엔 파일 /path/fxattr내가 수행할 수 있는 작업이 cd -@ /path/f있으면 lsxattrs가 시뮬레이션된 "디렉토리"에 (시뮬레이션된) "파일"로 표시될 것입니다 /path/f. (이를 위해 나는 커널이 이 에뮬레이션에 대한 일종의 지원이 필요하다고 가정합니다. 왜냐하면 lslive Outside 와 같은 것 때문에 에뮬레이션을 수행할 수 없음을 bash의미합니다 )bash

답변1

제 생각 -@에는 Solaris(및 Illumos와 같은 Solaris 기반 시스템)에서만 지원되는 것 같습니다. Solaris에서 확장된 속성은 직교 이름 공간의 파일로 볼 수 있습니다. 이론적으로 모든 파일(일반적인 의미에서는 디렉토리 등을 포함)은 확장된 속성 등을 가질 수 있습니다. 이 속성 포리스트를 탐색하기 위해 다른 명령 cd -@중에서 사용되는 파일 트리로 처리할 수 있는 API가 있습니다 . -@바라보다fsattr(5)더 알아보기. 이는 지원되는 파일 시스템에 의해 제한될 수 있습니다. 예를 들어 UFS는 디렉토리가 속성으로 사용되는 것을 허용하지 않으며 속성 자체가 속성을 갖는 것을 허용하지 않습니다.

Solaris에서 사용자에게 표시되는 내용은 제안한 대로입니다.

~$ touch test
~$ cd -@ test
/proc/1604/fd/6$ ls
SUNWattr_ro  SUNWattr_rw
/proc/1604/fd/6$ touch attribute

이렇게 하면 "테스트" 파일에 추가된 "속성" 확장 속성 파일이 생성됩니다. cd -@ attribute속성 트리 내부에서 작업하고 토끼굴 아래로 계속 내려가는 것도 가능합니다.

유사한 확장 속성 API가 최근(2019년 1월) Linux용으로 도입되었습니다.논의하다fs-verity.

관련 정보