2010-09-23 3 views
0

Je cherche un moyen de tronquer tous les fichiers dans plusieurs dossiers de manière récursive. J'en ai besoin parce que je travaille sur un installateur où je veux garder tous les fichiers qui seront livrés dans le programme d'installation, mais je veux les tronquer tous afin que je puisse construire mes paquets d'installation plus rapidement à des fins de test.taille tronquée de tous les fichiers dans les dossiers (fichiers binaires et texte)

Un script batch ou des outils pour cela? C'est pour le système Windows et j'utilise cygwin.

+0

Dans quel environnement? Linux, Windows ou autre chose? – Lekensteyn

+0

Windows mais j'ai cygwin donc tout script ou ligne de commande ferait – LordKifui

Répondre

3

Soyez prudent avec ce

find * | xargs tee 
+0

Ceci est un post plus ancien mais merci beaucoup pour cela! J'avais toujours utilisé l'opérateur de flux '>' mais ne fonctionnait pas pour plusieurs fichiers. Votre méthode fonctionne très bien et c'est ce que je cherchais! – rjcarr

0

Je vous propose un script simple de faire une copie de la structure de fichier. Deux options: créez uniquement des fichiers vides ou copiez les n premiers blocs des fichiers d'origine. Voir man touch et man dd

dirIn="xxxxx" #your original directory 
dirOut="yyyy" #the fake data dir used to test the packaging code 

find $dir -name "*" | while read line 
    do 
     fname=${line##*/} 
     dirName=${line%/*} 
     # create directory in the target test dir 
     mkdir -p ${dirOut}/$dirName 
     # first option: create an empty file (you can also set permissions and times, see man) 
     touch ${dirOut}/$dirName/$fname 
     # other option: create a file by copying only 1 block from the input 
     dd if=$line of=${dirOut}/$dirName/$fname count=1 
    done 
Questions connexes