태그 지정 및 관련 태그 기능을 지원하는 명령줄 도구

태그 지정 및 관련 태그 기능을 지원하는 명령줄 도구

파일에 이름보다 더 많은 속성을 부여할 수 있는 명령줄 도구가 있습니까? 예를 들어, 이름이 , , 와 같은 태그를 ubuntu.pdf지정하는 파일이 있고 command-line, , , 태그가 있는 파일이 있습니다.shellnautilusmy_favourite_stuffwhatever_elselinux.pdfshellcommand-linelnbest_book

나는 명령을 원한다

$ tagged shell

출력됩니다

  file: path_to/ubuntu.pdf, path_to/linux.pdf
  related_tags: command-line(2), shell(1), nautilus(1),...

관련_태그는 숫자순으로 정렬되어 특정 관련 태그가 있는 파일 수를 나타냅니다. 명령줄에서 태그 클라우드 역할을 합니다.

명령줄(하드 링크, 심볼릭 링크, 셸 스크립트 등을 사용하여)에서 이 동작을 수행할 수 있습니까?

답변1

Linux 파일 시스템에는 확장된 속성에 대한 기능이 있습니다.스티븐은 그의 대답에 다음과 같이 표시했습니다..

그러나 다양한 유형의 많은(아마도 대부분) 그래픽 편집기는 "안전"을 클릭할 때 파일을 자르지 않고 동일한 파일을 새 콘텐츠로 채우지 않습니다. 대신 새 파일을 만들고 이름을 원래 파일 이름으로 바꿉니다.

이 작업에서는 이러한 확장 파일 속성이 파일 이름이 아닌 실제 마지막 파일을 요구하기 때문에 손실됩니다.

따라서 파일 시스템 기반만으로는 이와 같은 것을 "안전하게" 구현할 수 없습니다. 데이터베이스가 필요하고 파일 이름을 태그에 매핑해야 합니다.

그래서 사진이나 노래 같은 것에 대한 데이터베이스는 있지만 일반 파일에 대한 데이터베이스는 없는 것 같아요.

작성하는 것은 어렵지 않습니다. sqlite는 쉘 스크립트나 Python, C++ 또는 Go에서 이와 같은 간단한 데이터베이스를 작성하는 데 사용하기 쉽지만 사용자 외에는 이를 사용하는 사람이 없습니다.

어쩌면 Gnome이 TrackMiner 형태로 제공한 것과 같은 원래의 데스크톱 검색 엔진을 고수해야 할 수도 있습니다!

답변2

확장된 속성에 레이블을 저장할 수 있습니다(참조:man setfattr그리고man getfattr자세한 내용은) 이러한 명령을 사용하여 태그 탐색 명령을 구현합니다. 확장된 속성을 사용하면 속성이 첨부된 파일과 함께 복사/이동할 수 있다는 이점이 있습니다(예를 들어Linux에서 사용됨 cp --preserve=all).

가장 큰 단점은 태그 클라우드를 구축하기 위해 관심 있는 모든 파일의 확장 속성을 나열해야 하므로 비용이 많이 들 수 있다는 것입니다.

관련 정보