[Unix][備忘録]特定のファイルを探したり除外したり(メモ)
特定のファイル群を一括で何かする
状況
.cblファイルをコンパイルした後、同一ディレクトリにできる拡張子なしのファイルを別のディレクトリにコピーしたい…という。
/tmp
┣file01.cbl
┣file02.cbl
┣file01
┗file02
file01とfile02を/usr/local/userに移動したい。
コマンド
find /tmp/* ! -name "*.cbl" | xargs -i mv {} /usr/local/user
- nameの前に!で条件の否定ができる(知らなかった)
- findコマンドでfile01, file02を引っかけたあと、xargsでmvコマンド実行する
- iオプションを使用する事でfindの結果を{}にもってこれる
特定のファイル群を一括で何かする その2
状況
ファイル検索でリポジトリ内の .svn ファイルを除外したいなーと思った。
コマンド
find ./ -name ".svn" -prune -o -print
この結果に xargs をつけると除外はできたの……だが、どうも
! -name "XXX"
-name "XXX" -prune
は挙動が違う模様……以下メモ。
- pruneオプションは引数より下のディレクトリやファイルを捜査しない
- oオプション はor演算子と同じ
- ワイルドカード指定で隠しファイルは検索できない
とりあえずここまで。