
Dir1
複数のサブディレクトリとファイルを含むディレクトリがあります。そこにあるすべてのファイルは空のファイルですが、ファイル名はDir1と同じようにコピーしますDir1
。Dir2
次に、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/{}\"\;