私は必要です:
このコマンドは、.jpg
現在のディレクトリとサブディレクトリからRaspberryPiカメラでキャプチャしたすべてのファイルを削除します。
(理想的にはGit BashのWindowsバージョンと組み合わせて使用することをお勧めしますが、これはより便利なのでオプションです。)
私が試したこと:
find . -name "*.jpg" -size 24k -delete
サムネイル削除を使用しましたが、このfile
ユーティリティがカメラメーカー(manufacturer=RaspberryPi
)を表示できることがわかりました。
例:
$ file f49100889.jpg
f49100889.jpg: JPEG image data, Exif standard: [TIFF image data,
big-endian, direntries=10, height=0, manufacturer=RaspberryPi,
model=RP_OV5647, xresolution=156, yresolution=164, resolutionunit=2,
datetime=2015:06:09 08:15:03, width=0], baseline, precision 8,
1920x1080, frames 3
背景:
NTFSドライブのファイルシステムが破損し、testdisk / photorecを使用してファイルを修復しました。これでファイルが取得されましたが、ディレクトリ構造やファイル名などの一部のメタデータが失われました。バックアップから最も重要なファイルを復元し、残りのデータをできるだけ多く回収したいと思います。残りのファイルを簡単に操作できるように、一部のジャンクファイルを削除する必要があります。
私の目標を達成するためにこれらのコマンドを組み合わせることは可能ですか?それではどうですか?この問題を解決するより良い方法はありますか?
よろしくお願いします!
答え1
これは簡単な方法です。以下はというscript.sh
スクリプトの内容です~/bin/
。
#!/usr/bin/env bash
if (file "$1" | grep "RaspberryPi"); then
echo "rm $1" # <- safety first: just echo, no delete
# rm "$1" # <- uncomment to delete, leave the quotes
fi
実行権限()を付与しますchmod 0750 ~/bin/script.sh
。その後、ファイルを見つけて結果を一度に1つずつスクリプトに渡します(\;
代わりにを使用して)。+
find ~ -iname *.jpg 2>/dev/null -exec ~/bin/script.sh {} \;
もう一つのツールはidentify
ImageMagickから入手できます。このツールは画像の特性を記述し、EXIFを含む画像データを読み込みます。と比較してはるかに遅いですが、画像file
には提供されているよりもはるかに多くの情報がありますfile
。file
探しているデータが記載されていない場合に役立ちます。使用法は次のとおりです。
identify -verbose "$file" | grep "RaspberryPi"
戻りコードを表示して、戻りコード(上記のステートメントの内側または後でgrep
使用される)をテストできます。file
から:identify
if
man grep
通常、終了状態は、行が選択されている場合は0、行が選択されていない場合は1、エラーが発生した場合は2です。
$?
この情報は、変数に最後に実行されたコマンドの戻りコード/値または終了コード/値が含まれているという情報を結合します。
file image.jpg | grep "RaspberryPi"
echo $?
file
上の行は、「RaspberryPi」文字列を含む結果に対して0(一致項目が見つかった)値を生成します。
file image.jpg | grep "Rumpelstiltskin"
echo $?
上記の行は、file
「Rumpelstiltskin」文字列と一致するものがないと仮定して、1 - 一致しない値を生成します。