어떤 종류의 검색을 원하는지 명확하지 않습니다. 홈 디렉토리가 아닌 유닉스의 어느 곳에서나 작동하고 경로 이름 기반 검색 만 수행하려는 경우 약간의 쉘 해커를 사용하고 표준을 사용하여 다음 구성표를 사용할 수 있습니다 locatedb
.
- 태그가 지정된 파일을 하나 이상 포함하는 각 디렉토리에는 표준 하위 디렉토리가 필요합니다
.path-tags
.
- $ TAG 링크 (char 포함하지 않아야 함
_
)가있는 $ FILE 디렉토리의 각 파일에는 링크가 있습니다.$TAG_$FILE -> ../$FILE
나는 locate-tag
대본 의 세부 사항 을 당신에게 맡깁니다. locate
명령 및 셸 해커 만 사용하는 2 개 또는 3 개의 라이너 여야합니다 . (관심이 있으시면 하나 쓸 수 있습니다).
KDE 챕터 중 일부는 메타 데이터에 대한 이러한 종류의 체계에 대해 이야기했지만 세부 사항은 기억 나지 않습니다.
이 체계를 기반으로 유사한 스크립트를 사용하여보다 정교한 컨텐츠 검사 테스트를 수행 할 수도 있습니다 find
.
업데이트 된 요구 사항에 대한 생각
- 사용자가 읽을 수있는 모든 파일에 자유롭게 태그를 지정할 수 있습니다 -예, 문제 없습니다
- 사용자는 하나 이상의 태그와 일치하는 파일을 검색 할 수 있습니다 -마찬가지로
- 이전에 연결된 태그를 잃지 않고 파일을 이동할 수 있습니다. 파일이있는 디렉토리는 자유롭게 이동할 수 있지만 파일이 디렉토리에서 이동하면 문제가 발생합니다. 태그가 양식을했다 경우
$TAG_$INODE_$FILE
우리는이 경로가 주어진 아이 노드를 찾을 수있는 효율적인 방법을 , 우리는 우리가 파일 시스템에서 이동하는 경우에만 태그를 잃고,이 작업을 수행 할 수 있습니다. 파일을 복사하면 문제가 발생할 수 있으며 원래 제안보다 훨씬 더 복잡합니다.
- 시스템을 쉽게 백업 할 수 있습니다 . 본질적으로 어렵지는 않습니다.
- 데스크탑 환경에 대한 종속성 없음-없음
- 어떤 GUI가 관련되어 있다면, cli fallback이 있어야합니다 – 그것이 우리가 사는 곳입니다!
Postscript
링크 (2)에 설명 된 "reverse-inode-lookup"파일은 (1) 에 대한 답변에서 나에게 보여준 추가 인프라를 제공하는 데 사용될 수 있습니다. 역방향 조회 파일에서 서비스를 실행할 수 있습니다.이 파일은 태그의 파일 이름에 지정된 각 inode가 태그가 가리키는 파일 (있는 경우)의 inode와 일치하는지 확인합니다. 일치하는 것이 없으면 필요한 수술을 수행 할 수 있으며 (아이 노드가 여전히 존재합니까? 어디에 있습니까?) 역방향 조회 파일이 변경되거나 재생성되고 태그 심볼릭 링크가 업데이트됩니다.
까다로운 한 가지 사례가 있습니다. 태그 된 파일이 태그가 말한 곳에 없으면 역방향 조회 파일이 여전히 존재한다고 말하지만 탕자 파일이 조회 파일의 위치가 아니라는 것입니다. 데이트? 이 경우를 처리 할 수있는 몇 가지 방법이 있지만 이상적인 것은 아닙니다. 이 외에도이 모든 작업은 Perl이 잘 어울리는 것 같습니다 ...