HTMLファイルだけを別のディレクトリにコピーする

公開Webサイト内のhtmlファイルだけを検索して別のディレクトリにコピーしたい。

 

  • *.htmlだけの容量を知りたい。
  • *.htmlだけを海外サーバに転送したら早くFTPが完了するだろうなぁ。

 

findを使う方法と、rsyncを使う方法を考えてみた。 

 

■htdocs_aディレクトリ内のhtmlファイルを検索する

$ find htdocs_a -name "*.html"  

 これで一覧されることを確認。このファイルを別のディレクトリにコピーしたい。

 

htdocs_bディレクトリを作ってから、実際にコピーする。 

$ cp -P `find htdocs_a -name "*.html"` htdocs_b

 

cp -P は、Solarisで使えないので以下の rsync を使ってコピーする。

 

 

■htdocs_a から htdocs_b へhtmlファイルだけコピーする

htdocs_aは、既に存在しているHTMLドキュメントディレクトリ。

htdocs_bは、コピー先のディレクトリでrsyncが作ってくれる。

 

まずは、全コピーを確認する。 

 $ rsync -av htdocs_a/ htdocs_b

htdocs_aの後ろにスラッシュを付けた場合: htdocs_aより下のファイルがコピーされる。

htdocs_aの後ろにスラッシュを付けない場合: htdocs_aというディレクトリが作られる。

 

うまくいったら、htdocs_bを削除しておいて、本番を実行する。

$ rsync -av --include "*/" --include "*.html" --exclude "*"  htdocs_a/ htdocs_b

--include "*/"  htdocs_aを基点ディレクトリとして、全てのディレクトリをコピーする。

--include "*.html"  HTMLファイルをコピーする。 

--exclude "*"  include指定以外のファイルを除去する。