空のディレクトリなしでディレクトリツリーをコピーしますか?


17

私は次のツリーを持っています

# upper letters = directory
# lower letters = files
A
|-- B
|-- C
    |-- D
    |-- e <= file
|-- F
    |-- G

空のディレクトリをすべて無視して、このツリーを別の宛先にコピーする必要があります。したがって、宛先は次のようになります。

C
|-- e

UNIX、rsyncなどでこれをどのように行いますか?

回答:



1

この問題にはさまざまな解決策があります(このWebページから引用)。

このオプションは、mkdirコマンドとfindコマンドを使用します。また、この方法では、コマンドの実行中にソースフォルダー内にいる必要があります。

bash$ cd /path/to/source && find . -type d -exec mkdir -p /path/to/dest/{} ;

findとcpioを使用する

bash$ find /path/to/source -type d | cpio -pd /path/to/dest/

Rsyncを使用する

bash$ rsync -a --include '*/' --exclude '*' /path/to/source /path/to/dest

または

bash$ rysnc -a -f"+ */" -f"- *" /path/to/source /path/to/dest

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.