2010-09-23 5 views
0

Я искал способ обрезать все файлы в нескольких папках рекурсивно. Мне нужно это, потому что я работаю над установщиком, где я хочу хранить все файлы, которые будут отправлены в установщик, но я хочу усечь их все, чтобы я мог быстрее компоновать свои пакеты установщика для целей тестирования.обрезать размер всех файлов в папках (двоичные и текстовые файлы)

Любой пакетный скрипт или инструменты для этого? Это для системы Windows, и я использую cygwin.

+0

Какая среда? Linux, Windows или что-то еще? – Lekensteyn

+0

Windows, но у меня есть cygwin, поэтому любой скрипт или командная строка будет делать – LordKifui

ответ

3

Будьте осторожны с этим

find * | xargs tee 
+0

Это более старое сообщение, но спасибо за это! Я всегда использовал оператор потока «>», но не работал для нескольких файлов. Ваш метод отлично работает и является тем, что я искал! – rjcarr

0

Я предлагаю вам простой сценарий, чтобы сделать копию структуры файла. Два варианта: создавать только пустые файлы или копировать первые n блоков исходных файлов. Просмотреть контакт с человеком и человека 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 
Смежные вопросы