파일(PDF)에 태그를 추가하고 명령줄이나 스크립트에서 처리합니다.

파일(PDF)에 태그를 추가하고 명령줄이나 스크립트에서 처리합니다.

내 파일(이 경우 PDF 파일)에 태그를 추가하여 파일 시스템에서 검색한 다음 명령줄이나 스크립트에서 결과를 처리하고 싶습니다.

일반 파일에 대해 이를 수행할 수 있는 Linux 도구가 있습니까?

간단한 방법은 파일 이름을 수정한 다음 find -exec를 사용하거나 파이프라인에서 파일 이름에 액세스하는 것입니다. 파일에 여러 태그를 지정하고 싶고 파일 이름이 길지만 이런 방식으로 처리하고 싶습니다.

예를 들어 PDF 파일이 너무 많다고 가정해 보겠습니다. 그래서 나는 그들 중 일부를 다음과 같이 표시하고 싶습니다.청구서, 그 중 일부는 다음과 같은 역할을 합니다.초안

이렇게 하면 나중에 응용 프로그램이 내 파일 시스템을 찾아보고 일치하는 항목을 처리하도록 할 수 있습니다. 생성한다고 해보자심볼릭 링크이 모든 항목을 적절한 폴더에 넣거나병합하나의 PDF 등으로 병합합니다.

내 질문은 다음과 같이 파이프라인에서 두 번째로 나오는 프로그램에 관한 것이 아닙니다. ln, gs, pdfjoin, 그러나 태그를 직접 사용하는 경우(예: 태그 적용 및 해당 태그가 포함된 파일 검색)

답변1

이는 여러분이 생각하는 것과는 다르지만 메타데이터를 지원하는 파일을 사용하는 데 관심이 있는 경우 exiftoolPDF 파일을 포함하여 다양한 파일 형식에 대한 메타데이터를 보고 변경할 수 있습니다. 전체 목록을 보려면 를 참조하세요 man exiftool.

저는 PDF에서 메타데이터를 생성하고 변경하는 데 여러 번 사용해 왔습니다. 예를 들어:

  exiftool -Title="My PDF" \
           -Subject="stuff" \
           -Description="my pdf about various things" \
           -Keywords="miscellanea, nonsense" \
           -Author="me" \
           -Creator="also me" \
           "mypdf.pdf"

이제 그것은 당신의 생각과 더 관련성이 높아졌습니다. 메타데이터 필드 Keywords(또는 임의 필드 생성을 지원하는 파일 형식의 다른 필드(많은 경우))를 사용하여 파일 자체에 태그를 저장할 수 있으므로 스크립트가 태그 심볼릭 링크 필드를 자동으로 유지 관리할 수 있습니다.

또는 스크립트는 sqlite파일 이름(전체 절대 경로 포함), 파일 시스템 메타데이터(타임스탬프, 크기, 권한 등) 및 해당 파일 목록이 포함된 데이터베이스(예: CSV 또는 유사한 일반 텍스트 또는 SQL 데이터베이스)를 유지 관리할 수 있습니다. 상표. 이 데이터베이스를 검색하고 결과를 유용한 형식으로 반환하기 위해 추가 스크립트를 작성할 수 있습니다.

예를 들어:

vi $(search-tagged-files --date "last sunday" --keywords thesis)

또는

localc $(search-tagged-files --keywords budget,2017 \
         --mimetype=application/vnd.oasis.opendocument.spreadsheet)

참고: 이와 같은 방식의 가장 큰 단점은 각 파일의 태그를 유지하는 것이 많은 작업이라는 것입니다. 이 중 일부는 자동화할 수 있지만 대부분은 지루하고 시간이 많이 걸리는 수동 작업입니다. 이는 시스템을 설계하고 개발하는 데 필요한 시간을 무시합니다.

파일을 생성하거나 편집하는 데 사용되는 프로그램은 파일 관리 mv시스템 cp이나 rm.

이 태그 데이터베이스에 대해 알고 있는 많은 사람들을 위해 래퍼 스크립트를 작성하고 자동으로 업데이트할 수 있지만 GUI 파일 브라우저를 사용하여 파일을 이동, 복사, 열기 등을 수행하는 경우 어디서부터 시작해야 할지조차 모릅니다. 그거 하고 . .파일 브라우저를 직접 작성해야 할 수도 있습니다.

비슷한 생각을 가진 대부분의 사람들이 "대신 잘 정리된 디렉토리 트리를 사용하겠습니다"라고 생각하게 되는 가장 큰 이유는 관련된 작업일 것입니다. 문서를 관리하기 위한 코드를 작성하는 데 필요한 노력도 엄청나며, 각 파일의 메타데이터를 관리하는 데 드는 노력도 훨씬 더 큽니다. 일반적으로 수만 개 이상의 문서를 저장해야 하는 대규모 조직의 노력만큼의 가치가 있습니다. 추적하다.

이것은 새로운 아이디어가 아니며, 이 아이디어에 대한 많은 연구와 개발이 있었습니다. 그 이름 중 하나는파일 관리 시스템.

답변2

내 경험상 메타데이터로 파일에 태그를 지정하는 것은 신뢰할 수 없습니다. 모든 파일 관리자에서 메타데이터를 직접 보거나 수정할 수 있는 것은 아니며, 내 메타데이터는 다른 시스템으로 전송될 수 없으며 Windows에서 Linux와 다르게 나타날 수 없으며 그 반대의 경우도 마찬가지입니다.

개인적으로 저는 이 프로그램과 비슷한 접근 방식을 취합니다.라벨 공간받아 들여;파일 이름 자체에 태그를 추가했습니다.

TagSpaces는 다음과 같이 구현됩니다. Filename [tag1 tag2 tag3].ext

나는 이렇게 한다: Filename #tag1 #tag2 #tag3.ext

나는 이것이 매우 효과적이라는 것을 알았습니다. 특히 단축키 관련 프로그램 catfish(Windows와 유사)과 함께 사용할 때 더욱 그렇습니다. Everything모든 태그는 로 시작하므로 #해당 태그를 검색하면 #bills이름에 "bills"라는 단어가 있지만 해당 태그가 없는 파일이 반환되는 것에 대해 걱정할 필요가 없습니다.

저는 Evernote와 같은 서비스 사용에서부터 복잡한 폴더 계층 구조에 이르기까지 태그 또는 태그 유사 시스템을 사용하여 파일을 구성하는 다양한 방법을 살펴보는 데 많은 시간을 보냈습니다. 이것은 내가 찾을 수 있는 가장 쉽고 원활한 방법이며 OS에 구애받지 않습니다.

관련 정보