![태그 지정 및 관련 태그 기능을 지원하는 명령줄 도구](https://linux55.com/image/227672/%ED%83%9C%EA%B7%B8%20%EC%A7%80%EC%A0%95%20%EB%B0%8F%20%EA%B4%80%EB%A0%A8%20%ED%83%9C%EA%B7%B8%20%EA%B8%B0%EB%8A%A5%EC%9D%84%20%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94%20%EB%AA%85%EB%A0%B9%EC%A4%84%20%EB%8F%84%EA%B5%AC.png)
파일에 이름보다 더 많은 속성을 부여할 수 있는 명령줄 도구가 있습니까? 예를 들어, 이름이 , , 와 같은 태그를 ubuntu.pdf
지정하는 파일이 있고 command-line
, , , 태그가 있는 파일이 있습니다.shell
nautilus
my_favourite_stuff
whatever_else
linux.pdf
shell
command-line
ln
best_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
).
가장 큰 단점은 태그 클라우드를 구축하기 위해 관심 있는 모든 파일의 확장 속성을 나열해야 하므로 비용이 많이 들 수 있다는 것입니다.