参照ディレクトリと同じディレクトリ構造で空のファイルを作成します。

参照ディレクトリと同じディレクトリ構造で空のファイルを作成します。

Dir1複数のサブディレクトリとファイルを含むディレクトリがあります。そこにあるすべてのファイルは空のファイルですが、ファイル名はDir1と同じようにコピーしますDir1Dir2

次に、Dir2をgithubにプッシュし、ユーザーにサンプルデータ構造とファイル名を説明する予定です。

ターゲットファイルは空ですが、ファイル名が同じようにファイルをコピーするコマンドはありますか?

答え1

GNU coreutils(組み込みのLinuxやCygwinなど)を使用すると、次のように簡単になります。

cp -a --attributes-only Dir1 Dir2

答え2

または、より複雑ですが、単一のファイルシステムパスを使用します(移植性を高めるには、次のように~作成する必要があります$HOME)。

find . \( -type d -exec mkdir -p "~/elsewhere/{}" \; \
  -o -type f -exec touch "~/elsewhere/{}" \; \)

ここでの複雑さは、ブール論理(学習にある程度の利点があるかもしれません)と優先順位(よく理解されています)、そしてfind後続の作業の間の暗黙のANDとORの存在によって-typeこれらの概念がどのように実装されるかにあります-o

答え3

cd /path/to/oldroot
find . -type d -exec mkdir -p \"/path/to/newroot/{}\"\;
find . -type f -exec touch \"/path/to/newroot/{}\"\;

関連情報