ファイル(PDF)にタグを追加し、コマンドラインまたはスクリプトで処理します。

ファイル(PDF)にタグを追加し、コマンドラインまたはスクリプトで処理します。

私のファイル(この場合はPDFファイル)にタグを追加してファイルシステムから検索し、コマンドラインまたはスクリプトで結果を処理したいと思います。

一般ファイルに対してこれを行うことができるLinuxツールはありますか?

簡単な方法は、ファイル名を変更してfind -execを使用するか、パイプラインからファイル名にアクセスすることです。ファイルに複数のタグを付けたい、ファイル名が長いが、このように扱いたい。

たとえば、PDFファイルが多すぎるとします。だから私はそれらのいくつかを次のようにマークしたいと思います。請求書、その一部は次のような役割を果たします。ドラフト

これにより、後でアプリケーションが自分のファイルシステムを参照して一致するものを処理できるようになります。作成するとしましょうシンボリックリンクこれらすべての項目を適切なフォルダに入れるか、マージ一つのPDFなどにマージします。

私の質問は、次のようにパイプラインから2番目に出てくるプログラムに関するものではありません。 ln、、、しかしタグを直接使用する場合(タグの適用とそのタグを含むファイルの検索gspdfjoin

答え1

これはあなたが考えるものとは異なりますが、メタデータをサポートするファイルを使用することに興味がある場合は、PDFファイルを含むexiftoolさまざまなファイル形式のメタデータを表示および変更できます。完全なリストについてはを参照してください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に拘束されません。

関連情報