J'ai un Dir1
avec plusieurs sous-dossiers et des files à l'intérieur. J'ai l'intention de copyr le Dir1
vers Dir2
afin que tous les files dans ce soit juste des files vides mais avec le même nom de file que Dir1.
Ensuite, j'ai l'intention de pousser le Dir2 à github pour expliquer l'exemple de structure de données et les noms de files aux users.
Existe-t-il une command pour copyr les files d'une manière juste pour les files de destination sont vides mais avec le même nom de file?
Ou plus compliqué mais avec une seule passe de système de files (pour encore plus de portabilité ~
devrait être écrit comme $HOME
)
find . \( -type d -exec mkdir -p "~/elsewhere/{}" \; \ -o -type f -exec touch "~/elsewhere/{}" \; \)
La complexité est ici celle de la logique booleanne (qui peut avoir un certain avantage à apprendre) et la préséance (aussi bonne à savoir) et comment find
implémente ces concepts avec un ET implicite entre le -type
et l'action subséquente, -o
.
Avec les coreutils GNU (par exemple sur Linux non embarqué ou Cygwin), c'est aussi simple que
cp -a --atsortingbutes-only Dir1 Dir2
cd /path/to/oldroot find . -type d -exec mkdir -p \"/path/to/newroot/{}\"\; find . -type f -exec touch \"/path/to/newroot/{}\"\;