パターンを使用した木のコピー

パターンを使用した木のコピー

私のビルドスクリプトが次のようなものを生成するとしましょう。

build
├── [drwxr-xr-x pskocik  pskocik ]  bin
│   └── [-rwxr-xr-x pskocik  pskocik ]  FOO_bin
├── [drwxr-xr-x pskocik  pskocik ]  include
│   ├── [drwxr-xr-x pskocik  pskocik ]  FOO
│   │   ├── [-rw-r--r-- pskocik  pskocik ]  FOO_a.h
│   │   └── [-rw-r--r-- pskocik  pskocik ]  FOO_b.h
│   └── [-rw-r--r-- pskocik  pskocik ]  FOO.h
├── [drwxr-xr-x pskocik  pskocik ]  lib
│   ├── [-rw-r--r-- pskocik  pskocik ]  libFOO.a
│   └── [-rwxr-xr-x pskocik  pskocik ]  libFOO.so
└── [drwxr-xr-x pskocik  pskocik ]  share
    └── [drwxr-xr-x pskocik  pskocik ]  man
        ├── [drwxr-xr-x pskocik  pskocik ]  man1
        │   └── [-rw-r--r-- pskocik  pskocik ]  FOO.1.gz
        └── [drwxr-xr-x pskocik  pskocik ]  man3
            └── [-rw-r--r-- pskocik  pskocik ]  FOO.3.gz

8 directories, 8 files

これをコピーするか、このように/usrコピーする最善の方法は何ですか?/usr/local

  • ファイルの属性はroot:rootに戻されます。
  • ファイルモードは変更されません。
  • (オプションで)すでに存在しない限り、ディレクトリノードにも同様に適用されます(この場合、所有権とスキーマは変更されません)。

答え1

rsyncを使用してください。

rsync -rltpDvh --chown root:root build/ /usr/

これは次のことを意味します。

  • r:再帰
  • l:リンクコピー
  • t:タイムスタンプを維持する
  • p: 権限の維持
  • D:--devices
  • v:詳細
  • h:人が読める進行状況

まだインストールしていない場合は、まずパッケージ管理を使用してこの素晴らしいツールをインストールしてください:)

関連情報:

関連情報