Ubuntuに挿入された場合のSDカードの自動マウント


0

SDカードがカードリーダーに挿入されると、SDカードを自動マウントするBASHスクリプトを記述して、すべての写真をHDDのフォルダーに移動し、各ファイルの名前を写真の撮影日時に変更しようとしています。

それを達成する方法はありますか?GUIなしでUbuntu 12.04を使用しています


2
UBUNTUはプラグインにカードを自動マウントすると信じています。少なくとも私の古いインストールはそうでした。いずれにしても、SDのUDIDに固有のUDEVルールの組み合わせを使用する必要があると思います。とにかくそれは高度な方法です。もう1つのオプションは、x分ごとにスクリプトを実行するCRONジョブです(明らかに、スクリプトはデバイスが存在するかどうかを確認し、存在する場合はマウントする必要があります)。
nerdwaller

1
udevこれを行う簡単で簡単な方法です。古いガイドの中には、スクリプトを実行する古い方法を参照しているものがあることに注意してください。新しい方法はRUN+="/path/to/script"
ジャム

GUIがないことを忘れてしまいました。udevルールを試してみます。名前の変更はどうですか?それを行うためのトリックはありますか?コメントありがとうございます:)
ハリド

ファイルを移動し、作成日時に応じて名前を変更することを意味しました:)
Khalid

@Khalid作成時間またはexif時間が必要ですか?EXIFは、写真を撮ったカムに関するデータが記録された画像内のメタデータである(時刻、日付、絞り、メーカー、モデル、F-停止など)
nerdwaller

回答:


1

あなたに完全な答えを提供するだけです:

データの自動マウントとコピー

高度な方法(実行方法)

デバイスのUUIDに固有のUDEVルールを使用する必要があります(上記のタイプのudidはご容赦ください)。

レイジーウェイ(どのようにできるか)

実行CRONジョブを指定した間隔でスクリプトを実行します。残りのスクリプトを実行する前に、SDがプラグインされているか、マウントされていることを確認するためのスクリプトが明らかに必要です。

名前の変更/移動

EXIFデータを取得するには

$ identify -verbose imageFile.jpg

それはたくさんのグッズを吐き出しますので、そこから作成日が欲しいとしましょう-それを絞り込みましょう:

$ identify -verbose imageFile.jpg | awk '/exif:/' (またはgrep exif)


更新:

OPはコメントで別のメソッドを要求しました:

代わりにフォルダをネストするように求めています。たとえば、2012年11月20日は〜/ 2012/11/20 / *。jpgになります

これを試すために作成したスクリプトは次のとおりです。EXIFで動作します(最初の項目は作成日に基づいており、ファイルを移動またはコピーすると浮かび上がります)。それはあなたのために私の空白のサイトでホストされており、スクリーンショットも投稿します(ここでフォーマットするのに多大な労力があるため)。 imageByEXIF.sh

imageByEXIF.sh

これを実装する前に、限られた規模でテストすることをお勧めします。テスト用にコマンドライン引数を入れたので、〜/ Pictures to〜/ Documentsを実行していました(ただし、フルパスを優先します)。


EXIFデータで可能ですか?
ハリド

@Khalid-Linuxを使用しているのはもちろんです!identify -verbose "INPUT" | grep "exif:DateTime:" | awk -F\ '{print $2" "$3}'
オタクウォーラー

1
編集:これは実際に機能するはずで、テスト済みidentify -verbose inputFile.jpg | grep "date:create:" | awk '{print $2}' | awk -FT '{print "date: "$1" time: "$2}' です。ヘルプが必要な場合は、スクリプトに統合するためにあなたに任せます。(他のデータが必要な場合は、そのままにしておきidentify -verbose image.jpgます。クールなものがあります
。– nerdwaller

私は上記の中で持っているどのくらいの余分ながらくた実現ので、私はあなたのためにそれを短縮しています:identify -verbose imageFile.jpg | awk '/date:create:/ {split($2,arr,"T"); print arr[1],arr[2]}' それは非常にきれいである、[1]、日付と編曲であるARR [2]の時間です
nerdwaller

スクリプトをありがとう:)私はudevルールを使用しようとしましたが、何らかの理由でうまくいきませんでした...だから私はcronjobの方法を行っています。別のアイデアを思いついたのですが、EXIFの日付に従ってスクリプトを使用して写真をフォルダーに入れることは可能ですか?たとえば、今日撮影した写真は、2012サブフォルダー内の11サブフォルダー内の20サブフォルダーになります。ネストされたif条件を使用する必要があると思います。
ハリド

2

ここにubuntuの強力なマウントトリガーへの答えがあります:https : //help.ubuntu.com/community/UsbDriveDoSomethingHowto

スクリプトを入力するだけで写真を移動できます。のような:

#!/ bin / bash
#
#../20121115-174656-originalnameのような宛先ファイル

source = / mnt / sdcard /
destination = / home / youraccount / foto /

cd $ source

forの `find。-maxdepth 1 -type f -printf "%f \ n" `; 行う

iinfo = `stat -c%y $ i | カット-c1-19`
idate = `date --date =" $ iinfo "+%Y%m%d-%H%M%S-`

echo mv $ i $ destination $ idate $ i

やった

これは素晴らしいソースです-私はそれを逃しました!
nerdwaller
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.