[macos] Mac OS X의 파일에서 “확장 된 속성”을 제거하려면 어떻게합니까?

나는 스트레스 테스트를 실행 AppleScript 스크립트가 있습니다. 테스트의 일부는 특정 파일을 열고 저장하고 닫는 것입니다. 어쨌든 파일은 파일이 저장되지 못하게하는 “확장 된 속성”을 선택했습니다. 이로 인해 스트레스 테스트가 실패합니다.

확장 된 속성을 제거하려면 어떻게합니까?



답변

xattr명령을 사용하십시오 . 확장 된 속성을 검사 할 수 있습니다.

$ xattr s.7z
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine

-d옵션을 사용하여 하나의 확장 된 속성을 삭제하십시오.

$ xattr -d com.apple.quarantine s.7z
$ xattr s.7z
com.apple.metadata:kMDItemWhereFroms

-c옵션을 사용하여 모든 확장 된 속성을 제거 할 수도 있습니다 .

$ xattr -c s.7z
$ xattr s.7z

xattr -h명령 행 옵션이 표시되며 xattr에는 맨 페이지가 있습니다.


답변

단일 파일에서 단일 속성 제거

Bavarious의 답변을 참조하십시오.


단일 파일에서 모든 확장 된 속성을 제거하려면

플래그 xattr와 함께 사용 -c하여 속성을 “지우십시오”.

xattr -c yourfile.txt


많은 파일에서 모든 확장 된 속성을 제거하려면

디렉토리의 모든 파일에서 확장 된 속성을 재귀 적으로 제거하려면 -c“clear”플래그를 -r재귀 플래그 와 결합하십시오 .

xattr -rc /path/to/directory


Mac OS X 사용자를위한 팁

공백이나 특수 문자가 포함 된 긴 경로가 있습니까?

를 열고 Terminal.app입력을 시작 xattr -rc하고 후행 공백을 포함시킨 다음 파일 또는 폴더를 Terminal.app창으로 드래그하면 적절한 이스케이프가 포함 된 전체 경로가 자동으로 추가됩니다.


답변

다음을 사용하십시오.

xattr -rd com.apple.quarantine directoryname

이것은 모든 곳에서 성가신 속성을 재귀 적으로 제거합니다.


답변

또 다른 재귀 접근법 :

# change directory to target folder:
cd /Volumes/path/to/folder

# find all things of type "f" (file),
# then pipe "|" each result as an argument (xargs -0)
# to the "xattr -c" command:
find . -type f -print0 | xargs -0 xattr -c

# Sometimes you may have to use a star * instead of the dot.
# The dot just means "here" (whereever your cd'd to
find * -type f -print0 | xargs -0 xattr -c


답변


답변 (개별 파일)


1. 선택에 사용할 쇼케이스 키.

xattr ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png
    # com.apple.FinderInfo
    # com.apple.lastuseddate#PS
    # com.apple.metadata:kMDItemIsScreenCapture
    # com.apple.metadata:kMDItemScreenCaptureGlobalRect
    # com.apple.metadata:kMDItemScreenCaptureType

2. 삭제할 키를 선택하십시오.

xattr -d com.apple.lastuseddate#PS ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png
xattr -d kMDItemIsScreenCapture ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png

3. 키를 다시 보여 주어 키가 제거되었는지 확인하십시오.

xattr -l ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png
    # com.apple.FinderInfo
    # com.apple.metadata:kMDItemScreenCaptureGlobalRect
    # com.apple.metadata:kMDItemScreenCaptureType

4. 마지막으로 특정 파일의 모든 키를 제거하십시오.

xattr -c ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png

응답 (디렉토리의 모든 파일)


1. 선택에 사용할 쇼케이스 키.

xattr -r ~/Desktop

2. 디렉토리에서 모든 파일에 대한 특정 키 제거

xattr -rd com.apple.FinderInfo ~/Desktop

3. 디렉토리의 모든 파일에서 모든 키를 제거하십시오.

xattr -rc ~/Desktop

경고 : 삭제 한 후에는 다시 가져 오지 마십시오!
오류 : 실행 취소가 없습니다.


오류


사람들이 겪고있는 오류를 해결하고 싶었습니다.
오류가 나에게 견과류를 몰 았기 때문에 …
맥에서 설치하면xattr 파이썬에서 에서 환경에 문제가있을 수 있습니다.

내 Mac에는 두 가지 경로가 있습니다. xattr

type -a xattr

    # xattr is /usr/local/bin/xattr    # PYTHON Installed Version
    # xattr is /usr/bin/xattr          # Mac OSX Installed Version

따라서 -cxargs에서 작동하지 않는 예제 중 하나 에서 bash에서는 기본적으로 비 Python 버전으로 설정되기 때문입니다.

와 일하다 -c

/usr/bin/xattr -c

작동하지 않습니다 -c

/usr/local/bin/xattr -c
    # option -c not recognized

내 쉘 / 터미널의 기본값은 / usr / local / bin / xattr 이며 기본값 $PATH
/usr/local/bin:은 이전의 것이기 때문 /usr/bin:입니다.

파이썬을 제거하려고하면 다음을 볼 수 있기 때문에 이것을 증명할 수 있습니다 xattr.

pip3 uninstall xattr
Uninstalling xattr-0.9.6:
  Would remove:
    /usr/local/bin/xattr
    /usr/local/lib/python3.7/site-packages/xattr-0.9.6.dist-info/*
    /usr/local/lib/python3.7/site-packages/xattr/*
Proceed (y/n)?

해결 방법


고치다 option -c not recognized오류

  1. 파이썬 제거 xattr 을 .pip3 uninstall xattr
  2. 모두 닫기 Terminal 창을 닫고 종료Terminal
  3. 새로운 재개 Terminal 창을 .
  4. 재실행 xattr 명령과 지금은 작동합니다.

또는

파이썬을 유지하려면 xattr다음을 사용하십시오.

/usr/bin/xattr

의 모든 Shell명령Terminal


예:


Python 버전은 xattr이미지를 전혀 처리하지 않습니다.

Good-Mac:~ JayRizzo$ xattr ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png
    # com.apple.FinderInfo
    # Traceback (most recent call last):
    #   File "/usr/local/bin/xattr", line 8, in <module>
    #     sys.exit(main())
    #   File "/usr/local/lib/python3.7/site-packages/xattr/tool.py", line 196, in main
    #     attr_value = attr_value.decode('utf-8')
    # UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 2: invalid start byte

Good-Mac:~ JayRizzo$ /usr/bin/xattr ~/Desktop/screenshot\ 2019-10-23\ at\ 010212.png
    # com.apple.FinderInfo
    # com.apple.lastuseddate#PS
    # com.apple.metadata:kMDItemIsScreenCapture
    # com.apple.metadata:kMDItemScreenCaptureGlobalRect
    # com.apple.metadata:kMDItemScreenCaptureType

맨 페이지

OSX xattr 매뉴얼 페이지

Python xattr 버전 0.6.4 매뉴얼 페이지

참고 : 나는 할 수 없었다 현재 버전 0.9.6에 대한 Python 도움말 페이지를 찾을

읽어 주셔서 감사합니다!


답변