Copia Selectiva

casiano@exthost:~/src/groovy$ cat files/selectivecopydir.groovy
#!/usr/bin/env groovy
def ant = new AntBuilder()
ant.copy(todir: args[1], overwrite: true) {
 fileset(dir: args[0]) {
   include(name: '*.groovy')
   exclude(name: 'a*')
   exclude(name: 'c*')
 }
}

casiano@exthost:~/src/groovy$ files/selectivecopydir.groovy  files/ backup/
     [copy] Copying 18 files to /home/casiano/src/groovy/backup
casiano@exthost:~/src/groovy$ diff -r files/ backup/
Sólo en files/: antcopy2.groovy
Sólo en files/: antcopy.groovy
Sólo en files/: antIO.groovy
Sólo en files/: build.xml
Sólo en files/: canWrite.groovy
Sólo en files/: canWrite.java
Sólo en files/: cf
Sólo en files/: cliargs.groovy
Sólo en files/: cli.groovy
Sólo en files/: copy2.groovy
Sólo en files/: copydir.groovy
Sólo en files/: .copydir.groovy.swp
Sólo en files/: copy.groovy
Sólo en files/: copywithnum.groovy
Sólo en files/: csv.groovy
Sólo en files/: fileReading.txt
Sólo en files/: gcexamples
Sólo en files/: input.txt
Sólo en files/: MainClass.java
Sólo en files/: my.log
Sólo en files/: node17.html
Sólo en files/: node26.html
Sólo en files/: .selectivecopydir.groovy.swp
Sólo en files/: .svn

De acuerdo con las reglas de Ant el patrón *.groovy sólo copia los ficheros en el directorio padre. Si se quieren copiar los ficheros en los subdirectorios se debe usar el patrón **/*.groovy.



Casiano Rodríguez León
2010-04-30