Windowsの画像で、同じファイルを無駄にコピーしないように、ショートカットにしたものがあるのだが、それをLinuxに移す時、ショートカット中の、そのショートカットが参照しているファイル名を取り出す必要がある。

最初は、Linuxのstringsコマンドを使って自分で取り出そうとして、基本的にはできたのだが、日本語のファイル名はそんなに容易には取り出せないことに気付いて困った。その時、ふと、「もしかしたら、あの何でもできるexiftoolなら対応しているのでは?」と思って試したら、本当にできた。LocalBasePathでショートカットが参照しているファイル名が取り出せた。他に、WorkingDirectoryで作業ディレクトリが取り出せるようだ。

例:

exiftool -s3 -LocalBasePath ~/"Pictures/1961/祖父母のアルバム-001_サイズ変更.jpg - ショートカット.lnk" | nkf -u

D:\Butty\My Documents\My Pictures\from old albums\1. 祖父母のアルバム\001_サイズ変更.jpg

まったく感心した。そして、この機能を使って、ショートカットをLinuxのシンボリックリンクに変換する(実際にはシンボリックリンクを新たに作る)プログラムを作り、問題なく処理できて、digiKamで表示できるようになった。

なお、変換する時には、WindowsのディレクトリをLinuxのに変換する必要もあるが、汎用にするのは結構面倒なので、ひとまず画像の変換専用ということにして、WindowsとLinuxそれぞれのトップディレクトリを固定した。

例:

ショートカットが参照しているファイルがWindowsのトップ(D:\Butty\My Documents\My Pictures)以下だったら、Linuxのトップ(/home/butty/Pictures)に変換する。

※前提として、WindowsとLinuxのトップディレクトリの実体が同じである必要がある。

(11/20 5:41 若干加筆・修正)

  •   0
  •   0

3件のコメント

  1. naoki:

    ああー,もう!

    2つ目のパラグラフの途中から意味が分かりません。

    れんとさんに近づくために,もう1台,眠っているデスクトップをLinux勉強用に設置しようかと思い始めましたが,自分の部屋がドクの研究室みたいになりそうで躊躇しまくってます。(好きなんですが,寝室も兼ねてるので)

    •   0
    •   0
  2. PiuLento:

    ●うひひ。

    LocalBasePathとかの辺りでしょうか? これは、exiftoolの用語(仮想的なタグ名)ですから、分からなくても問題ないです。exiftoolに「LocalBasePathを取れ」と指定すると、ショートカットが参照しているファイル名が表示されます。

    Windows版もありますので、実際に試すといいかも知れませんね。http://www.sno.phy.queensu.ca/~phil/exiftool/ です。

    ドクの研究室、いい響きです。僕も憧れますが、今は、物の少ない整理された部屋がいいです。あ、でも、あの車とかオルガンとかいろいろ、やっぱり欲しいですw

    •   0
    •   0
  3. PiuLento:

    ●あと、もし、お使いのPCにメモリとディスクの余裕があれば、仮想環境(VirtualBox)でLinuxを動かすことも可能ですよ。これなら、物は増えず、自由にいじれます。メモリは約1.5GB以上、ディスクは20GBくらい使えるといいですが、ちょっと大きいかも知れません。

    •   0
    •   0

コメントを書く

名前    

メール 

URL