LoginSignup
13
10

More than 1 year has passed since last update.

特定のディレクトリやファイルを除いてコピーでディレクトリ作成する

Last updated at Posted at 2021-09-27

コピーでディレクトリを作成する際に、特定のディレクトリやファイルを除外するやり方の覚書き。
cpコマンドではなく、rsyncコマンドを使います。

環境

  • OS: CentOS7

実行フロー

今回は、

  • aaaディレクトリからbbbディレクトリを作成する
  • .git配下, README.md, 子ディレクトリ下の.gitkeepは除外する

という条件でやってみます

(1) 対象の確認
-nオプションにより、実際には実行せず、対象ファイルを確認します(--dry-runと同義)
※ターミナルの表示は省略してます

$ rsync -ahvn ./aaa/ ./bbb --exclude '.git/' --exclude 'README.md' --exclude '*.gitkeep*'

(2) 実行
--progressで転送状況を表示させます
※ターミナルの表示は省略してます

$ rsync -ahv --progress ./aaa/ ./bbb --exclude '.git/' --exclude 'README.md' --exclude '*.gitkeep*'

(3) 結果確認
diffコマンドで確認。除外対象がbbb配下になければOK

$ diff -rq aaa bbb
Only in aaa/backup: .gitkeep
Only in aaa: .git
Only in aaa: README.md
Only in aaa/tmp: .gitkeep

終わりに

本番展開をコピーでやってるので・・、、新規展開 & 不要なものを入れないようメモ。

cpコマンドでは特定のディレクトリやファイルを除く、のは無理っぽいので、rsyncで。
いきなり、rsyncするのはキケンなので、-nオプションで対象を確認した上で、実行してます

参考

以下のページたちがとても参考になりました。ありがとうございました。

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10