스크립트를 통해 파일을 편집하지만 osx 태그는 유지합니다.

스크립트를 통해 파일을 편집하지만 osx 태그는 유지합니다.

OSX에서는 태그를 사용하여 다양한 파일 카테고리를 식별할 수 있습니다. 다음은 Finder에서 볼 때 라벨이 서로 다른 두 개의 텍스트 파일입니다.

여기에 이미지 설명을 입력하세요.

나는 이러한 파일을 많이 가지고 있으며 이러한 파일을 여러 번 편집하기 위해 bash 스크립트를 작성했습니다. 예를 들어 저는 이렇게 합니다:

$ sed 's/old text/new text/' file1.txt > /tmp/foo.txt
$ cp -p /tmp/foo.txt file1.txt

이 경우 원하는 파일 콘텐츠를 얻었지만 태그가 손실되었습니다.

여기에 이미지 설명을 입력하세요.

질문: 원본 파일의 태그를 편집된 파일로 복사하는 방법은 무엇입니까?

답변1

을(를 ) 실행하면 > /tmp/foo.txt덮어쓰게 됩니다.콘텐츠및 의 /tmp/foo.txt출력 입니다 sed 's/old text/new text/' file1.txt. /tmp/foo.txt이 명령을 실행할 때 파일이 존재하지 않기 때문에 bash는 파일을 생성한 다음 해당 파일에 씁니다.

-p그런 다음 플래그를 사용하면 cp해당 프로세스에서 의 권한과 속성을 복사하고 덮어씁니다./tmp/foo.txtfile1.txt

대신, 여러분이 원하는 것은 친숙하게 들리는 content file1.txt로 콘텐츠를 덮어쓰는 것입니다. /tmp/foo.txt달리기

sed 's/old text/new text/' file1.txt > /tmp/foo.txt
cat /tmp/foo.txt > file1.txt

이는 의 권한이나 속성을 복사하지 않으며 그 반대의 경우도 마찬가지입니다. 즉, file1.txt기존 /tmp/foo.txt메타데이터를 유지 file1.txt하지만 콘텐츠를 수정하는 것입니다.

sed -i이 특별한 경우에는 pbm의 제안을 따를 수도 있습니다 .

관련 정보