GUI없이 Thunar에서 엠블럼을 어떻게 설정합니까?


9

스크립트를 사용하여 Thunar의 파일에 엠블럼을 추가하고 싶지만 이에 대한 문서를 찾을 수 없습니다.

이것을 할 수 있습니까? 그렇다면 어떻게?

같은 질문이 여기 에 요청 되었지만 ~/.cache/Thunar/metafile.tdb내 시스템에 존재하지 않는 파일을 언급 합니다. 나는 그 질문과 대답이 구식이라고 생각합니다.


존재하지 않습니까? ~/.cache숨겨진 파일입니다 ..
Seth

~/.cache/Thunar/존재하지도 않습니다. Thunar의 파일에 엠블럼을 추가 한 후에도 마찬가지입니다. Thunar 버전 1.6.3이 설치되어 있습니다.
Remco Haszing

답변:


13

버전 1.6 이후로 Thunar는 gvfs-metadata 데몬을 사용하여 메타 데이터를 저장하기 시작했습니다. 메타 데이터는에 저장되어 ~/.local/share/gvfs-metadata있지만 파일에서 읽을 수는 없습니다 ( 필자는 이진 형식으로 저장됩니다 ). 메타 데이터를 읽으려면 다음 gvfs-info과 같은 명령 을 사용하십시오 .

gvfs-info -a metadata:: /some/location  

의 메타 데이터가 인쇄됩니다 /some/location.

메타 데이터를 변경하려면 다음 gvfs-set-attribute과 같은 명령을 사용할 수 있습니다 .

gvfs-set-attribute /some/location -t stringv metadata::mdtype value  

/some/location은 메타 데이터를 편집하려는 파일 / 폴더의 위치이며, -t stringv문자열 입력을 예상하도록 명령에 지시하고, mdtype변경하려는 메타 데이터 유형 (예 :) emblemsnew value설정 value하고에 대한 메타 데이터로 설정 합니다 mdtype. 예를 들면 다음과 같습니다.

gvfs-set-attribute Downloads -t stringv metadata::emblems emblem-default  

Downloads폴더에 default엠블럼을 제공합니다 .

none엠블럼을 제거 하려면 값을 설정하십시오 . 변경 사항을 보려면 파일 관리자를 다시 시작해야합니다.


한 번에 두 개 이상의 폴더 / 파일의 상징을 변경할 수있는 작은 스크립트를 작성했습니다.

run() {    
cd # make sure we're in the home directory
echo 'What emblem do you want to apply?'
read emblem

if ! [ -z $emblem ]; then
    for i in $@
    do
        echo 'Changing stuff...'
        $(gvfs-set-attribute $i -t stringv metadata::emblems $emblem)
    done
    echo 'Done!'
else
    echo 'Emblem must be specified! Exiting...'
    exit  
fi
}

init() {

if [[ -z $@  ]]; then
    echo "No arguments provided"
else   
    run $@
fi
}

init $@  

출처 :


@RemcoHaszing 수정 된 답변을 확인하십시오. 오류가 발생하여 수정했습니다.
세스

Dropbox 폴더의 상태를 나타내는 엠블럼을 설정하는 스크립트를 작성하고 싶었 기 때문에 알고 싶었습니다. 새로 추가 된 엠블럼을보고 나중에 업데이트 된 답변에서이 내용을 읽으려면 Thunar를 다시 시작해야한다는 것을 알았습니다. Thunar가 어떻게 든 달리면서 이러한 변경 사항을 적용 할 수 있는지 알고 있습니까?
Remco Haszing

@RemcoHaszing 아니요, AFAIK는 실제로 불가능합니다. Thunar는 지속적으로 변경 사항을 폴링해야하며 많은 리소스가 필요합니다. 스크립트를 편집하여 실행중인 Thunar의 모든 인스턴스를 닫고 Dropbox 폴더에서 정확히 수행하려는 작업에 따라 새 인스턴스를 열 수 있습니다.
세스

아주 좋은 스크립트와 명령. 이것은 파일과 디렉토리에서 완벽하게 작동합니다. 그러나 내 Dropbox 폴더는 자체 파티션 / dev / sda2이지만 ~ / Dropbox에 마운트됩니다. ~ / Dropbox에 엠블럼을 설정하려고 시도했지만 작동하지 않았습니다. 어떤 아이디어? 감사합니다
jbrock

@jbrock 파일 관리자를 다시 시작 했습니까? 변경 사항은 다시 시작될 때까지 적용되지 않습니다. 그래도 문제가 해결되지 않으면 잘 모르겠습니다. 새로운 질문을 해보세요. 도움을 드리고 싶지만 현재이 특정 문제를 테스트 할 리소스가 부족합니다. 죄송합니다!
세스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.