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.txt
file1.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의 제안을 따를 수도 있습니다 .