UNIXシェルスクリプト第10章 Part8
ディレクトリをコピーするシェルスクリプト dircopy
find . -depth -print |
findコマンドは -depthオプションを使うとディレクトリ階層の深い順に表示させる。
付けた場合 付けなかった場合
a/b/c/d/e a
a/b/c/d a/b
a/b/c a/b/c/
a/b/f/d/e a/b/c/d
a/b/f/d a/b/c/d/e
a/b/f a/b/f
a/b a/b/f/d
a/x/f/d/e a/b/f/d/e
a/x/f/d a/x
a/x/f/o a/x/f
a/x/f a/x/f/d
a/x/fo a/x/f/d/e
a/x a/x/f/o
a a/x/fo
-depthオプションをつける理由は、先に深い部分にアクセスして途中の読み込み不可や、検索不可といったエラーの要因を早めに見つけようとするため。
cpioを使ったコピーの場合、普通このオプションをつけた出力結果を渡す。
cpio -pdmu $TARGET 2>&1 |
cpioコマンドの基本オプションは3つある。
データを出力するときは-o、読み込んでくるときには-i、パス名を読み込んだコピーには-pを使う。
-dは必要に応じてディレクトリを作成する、-mはファイルの更新時刻を元のままのものを使う、-uは強制上書きという意味がある。