Hi Gilles, On 12/23/2011 02:45 PM, Gilles Espinasse wrote:
I was using a way to check md5sum on a lot of file using for myfile in `cat ${ALLFILES}`; do if [ -f /${myfile} ]; then md5sum /$myfile>> $ALLFILES}.md5; fi; doneBut this is slow, comparing with xargs md5sum way. time (for myfile in `cat ${ALLFILES}`; do if [ -f /${myfile} ]; then md5sum /$myfile>> ${ALLFILES}.md5; fi; done) real 0m26.907s user 0m40.019s sys 0m10.253s This is faster using xargs md5sum. time (sed -e '/.\/$/d' -e 's|^.|/&|g' ${ALLFILES} | xargs md5sum${ALLFILES}.md5)md5sum: /etc/ipsec.d/cacerts: Is a directory md5sum: /etc/ipsec.d/certs: Is a directory md5sum: /etc/ipsec.d/crls: Is a directory md5sum: /etc/ppp/chap-secrets: No such file or directory md5sum: /etc/ppp/pap-secrets: No such file or directory md5sum: /etc/squid/squid.conf: No such file or directory real 0m1.176s user 0m0.780s sys 0m0.400s That run mostly 30 times faster. In the above example, I already skipped most of the directories in the list, removing lines that end with / but not all directories in my list match on that condition.
How do you create the list of files to check? You could use "find $DIR -type f" to list regular files only. Erik
