覚書 : 特定のディレクトリや拡張子以外をコピー(cp)する方法

2019年5月7日

例えば、以下のような構造をしたディレクトリ(フォルダ)があるとして、それぞれのディレクトリ内に存在するsrc/を除いたファイルをコピーしたいとき、cpコマンドとfindコマンドを組み合わせて書くこともできますが、rsyncを使ったほうが早いです。

folder1/
  ┣ App1/
  ┃  ┣ bin/
  ┃  ┗ src/
  ┣ App2/
  ┃  ┣ bin/
  ┃  ┗ src/
  ┣ App3/
  ┃  ┣ bin/
  ┃  ┗ src/
  ┣ App4/
  ┃  ┣ bin/
  ┃  ┗ src/
  ┗ App5/
      ┣ bin/
      ┗ src/

をfolder2に以下のようにコピーしたい。

folder2/
  ┣ App1/
  ┃  ┗ bin/
  ┣ App2/
  ┃  ┗ bin/
  ┣ App3/
  ┃  ┗ bin/
  ┣ App4/
  ┃  ┗ bin/
  ┗ App5/
      ┗ bin/

 

以下のようにコマンドを実行することでうまくいきます。

$ rsync -av folder1/ folder2/ --exclude "*/bin/"

 

それに加えて特定の拡張子(*.obj)のファイルを除外したい場合は以下のようなコマンドを書くことでいけます。

$ rsync -av folder1/ folder2/ --exclude "*/bin/" --exclude "*.obj"

 

参考資料

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

 

新しいLinuxの教科書

新しいLinuxの教科書

三宅 英明, 大角 祐介
2,970円(02/25 18:49時点)
発売日: 2015/06/06
Amazonの情報を掲載しています
[改訂第3版]Linuxコマンドポケットリファレンス

[改訂第3版]Linuxコマンドポケットリファレンス

沓名 亮典
2,618円(02/25 18:49時点)
発売日: 2015/06/05
Amazonの情報を掲載しています

Linux, TECHNOLOGY

Posted by FL1NE