RLB

Just sharing knowledge

shellscriptでフォルダをまるごと0キロバイトにして全てコピーする

たまたまフォルダの状態をキープしたまま、0キロバイトでコピーする作業があったので、その場でワンライナーでshell script書いてみました。

TARGET_DIR=www; PREFIX=zerocopy_; for file in $(find $TARGET_DIR -type f);do mkdir -p $PREFIX`dirname $file`;touch $PREFIX$file; done 

PREFIXがついたコピーがそのまま同じ階層にコピーされます

原理は単純で、対象ディレクトリをfind -fしてファイルのパスのみ出力した後に、mkdir -pでパスごとコピー、最後にtouchで0キロバイトを作成します。

注意点として、TARGET_DIRでコピー対象のディレクトリを相対パスで指定です。