LoginSignup
0
1

More than 5 years have passed since last update.

ディレクトリのみ、構造を保ったままコピー

Posted at

ファイルのコピーは実行せず、ディレクトリのみを、構造を保ったままコピーする方法。

あるあるネタ1なのだが、GNU coreutils の cp なら、find xargs やら rsync やら使わずに簡単にできる。

$ mkdir -p foo/bar/buz
$ touch foo/bar/file1
$ cd foo && tree     # 本物の tree じゃないよ
/PATH/TO/foo/            
+--bar/                                        
   +--buz/                                     
   +--file1                                     

cp -sr

foo を hoge としてディレクトリのみコピーしたい場合。

cp -sr で、コピー元を相対パス記載してコピーする。

$ cp -sr foo hoge
# STDERR は気にしない
$ cd hoge && tree
/PATH/TO/hoge/            
+--bar/                                        
   +--buz/     

ま、-s がコケるのを見越した、お行儀の悪いやりかたなんだけど。

cp -sr 本来の使い方

で、

コピー元をフルパスで実施すると、ファイルのシンボリックリンクが出来る2

$ cp -sr /PATH/TO/foo hoge2
$ cd hoge2 && tree
/PATH/TO/hoge2/            
+--bar/                                        
   +--buz/   
   +--file1

一気に再帰的にシンボリックリンクが作成できるので、深い階層に鎮座するデータを手元に構成したいときには便利。


  1. 近年のGoogle様だと、今回のやり方は上位に出てこない。何で? 誰かしらメモってるだろうに。 

  2. コピー元にシンボリックリンクがあった場合は? とかは調べてない。 

0
1
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
0
1