2018年以降の記事はGitHub Pagesに移行しました

特定のファイルを探したり除外したり(メモ)

特定のファイル群を一括で何かする

状況

.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演算子と同じ
  • ワイルドカード指定で隠しファイルは検索できない

とりあえずここまで。