Je souhaite supprimer tous les fichiers versionnés de mon référentiel, mais CONSERVER la structure de répertoires versionnée. Évidemment, je veux laisser tous les répertoires .svn intacts.
En d'autres termes, je veux vider complètement la structure de répertoire d'une copie de travail SANS nuire à la structure de répertoire elle-même.
Par exemple, supprimer les fichiers de cette structure:
dir/
.svn/
[files]
svsubdir1/
file1
.svn/
[files]
subdir2/
file2
file3
file4
.svn/
[files]
subsubdir1/
file5
.svn/
[files]
Devrait se traduire par:
dir/
.svn/
[files]
svsubdir1/
.svn/
[files]
subdir2/
.svn/
[files]
subsubdir1/
.svn/
[files]
Je cherche une sorte de find
commande ou quelque chose pour accomplir cela, et j'ai du mal à construire la commande. Merci pour l'aide!
Réponses:
devrait correspondre à la facture (provient principalement de la page de manuel find pour
-path
). Tuyau à moins et vérifiez-le. Ce qu'il fait est d'abord trouver (le chemin se termine par .svn et ne pas récursivement dans (élaguer) ce répertoire) ou (si c'est un fichier, l'imprimer).S'il semble bon, changez-le en
La version + colle tous les fichiers ensemble dans une seule commande rm. Si vous êtes paranoïaque, gardez d'abord une sauvegarde de l'arborescence (
cp -a dir/ otherdir/
).la source
-delete
profondeur et donc en conflit avec-prune
car les fichiers à l'intérieur du dossier seront vérifiés avant que le dossier lui-même ne soit examiné. L'autre solution (en utilisant-not -path ...
plutôt que-path ... -prune
peut utiliser l'option -delete.Doit faire l'affaire.
la source
-exec /bin/rm '{}'
vous pouvez utiliser-delete
.