java - una - mover todos los archivos de un directorio a otro en linux
Cómo copiar un directorio usando Ant (11)
He utilizado copydir
para copiar un árbol de directorios, pero está en desuso. Mi directorio contiene algunos subdirectorios, y algunos contienen archivos y otros contienen más subdirectorios.
¿Cómo puedo copiar todo el árbol?
Copie los contenidos incluyendo el directorio mismo.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}">
<include name="${src.dir}/**"/>
</fileset>
</copy>
Copie los contenidos incluyendo el directorio mismo.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}" includes="${src.dir}/**"/>
</copy>
Desde el ejemplo manual , puedes escribir un archivo Ant simple usando la tarea de copia.
<project name="MyProject" default="copy" basedir=".">
<target name="copy">
<copy todir="./new/dir">
<fileset dir="src_dir"/>
</copy>
</target>
</project>
Esto debería copiar todo dentro de src_dir
(excluyéndolo) en new/dir
.
Este código debe copiar la carpeta, así como su contenido. También utiliza la tarea de nombre base para evitar tener que realizar un análisis de ruta manual.
<project name="Build" default="doCopy">
<property name="source.dir" value="SourceDirPathGoesHere"/>
<property name="dest.dir" value="DestinationDirPathGoesHere"/>
<target name="doCopy">
<basename property="source.dir.base.name" file="${source.dir}"/>
<copy todir="${dest.dir}">
<fileset dir="${source.dir}/.." includes="${source.dir.base.name}/**"/>
</copy>
</target>
</project>
Estoy agregando un patrón más genérico para copiar todas las subcarpetas.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir}" includes="**/*"/>
</copy>
Ver Patterns para más detalles.
Finalmente copié usando el siguiente código
<copy todir="${root.dir}/dist/src">
<fileset dir="${root.dir}/build/src" includes="**"/>
</copy>
Esto copiará la carpeta src de dist para compilar.
Espero que esto ayude a alguien.
Otra tarea de hormiga es Copydir . La parte clave aquí es incluir el nombre del directorio que desea copiar después del directorio dest. Los subdirectorios y archivos se copiarán automáticamente.
<target name="-post-jar">
<copydir src="config" dest="${dist.dir}/config/"/>
</target>
Solo debe especificar el directorio (sin la propiedad includes):
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
Vea el manual para más detalles y ejemplos.
Un buen punto: hormiga solo copiará los subdirectorios si los archivos de origen son más nuevos que los archivos de destino. manual En mi caso, los subdirectores no se copiaban (estoy usando verbose = "true"), ya que no había cambios y ya estaban en el destino. Puede usar "sobrescribir" para forzarlo, o tocar algunos de los archivos en sus subdirectorios de origen.
Utilicé etiquetas de inclusión como se muestra en el fragmento de código a continuación en mi archivo build.xml para copiar archivos jar individuales dentro de un directorio.
<target name="devInstall" depends="generateXsl" description="testing">
<copy flatten="true" todir="${test}/WEB-INF/lib" overwrite="${overwrite}">
<fileset refid="buildJars"/>
<fileset dir="lib">
<include name="commons-collections-*.jar"/>
<include name="commons-io-*.jar"/>
<include name="kodo/*.jar"/>
<include name="mail*.jar"/>
<include name="activation*.jar"/>
<include name="guava*.jar"/>
<include name="jna*.jar"/>
</fileset>
</copy>
</target>
<copy todir="${dest.dir}" >
<fileset dir="${src.dir}" includes="**"/>
</copy>
cree que hará lo que quieras ... (Copia recursiva hecha)