私のファイル/ディレクトリの命名の標準として、アンダースコアで区切られたファイル名に日付とタグ文字列を入れるようなものを使用します。例:
2015_03_10_usa_nyc_vacations_album_pictures
長い間、Recollのようなソフトウェアを使用してきましたが、通常、必要以上のレコードが記録されます。私の命名はかなり一貫しているので、findコマンドを使用してスクリプトのサイズを変更する方法があるはずだと思います。
単一の条件で検索を実行する方法は知っていますが、複数の基準/条件を検索する方法がわかりません。つまり、名前が特定の条件を満たすすべてのファイルを見つけるにはどうすればよいですか。次の例を考えてみましょう
通常、次のようなものを入力する価値はありません。
find /dir -regex '.*2015.*\(album.*\|picture.*\)'
時間を無駄にしないでください。タスクごとに1つのツールというgrepとUNIXの概念を使用してください。
find /dir|egrep '2015.*(album|picture)'
これは:
最初の
find DIR \( -name 2015\* -a \( -name \*album\* -o -name \*picture\* \) \) -delete
どこ
*
をエスケープする必要があります-delete
を好きなものに置き換えます2つ目は宿題として残されます(ヒント\!
)
最初のfind
と-regex
良いでしょう:
find /dir -regex '.*2015.*\(album.*\|picture.*\)'
2番目の場合:
find . -name "*album*" -a -name "*vacations*" -a -not -name "*2015*"