una txt otra opt mover copiar contenido como carpeta archivos archivo linux file copy folders

linux - txt - Copie la estructura de carpetas(sin archivos) de una ubicación a otra



copiar contenido de una carpeta a otra linux (11)

Aquí hay una solución simple usando rsync:

rsync -av -f"+ */" -f"- *" "$source" "$target"

  • una línea
  • sin problemas con espacios
  • preservar permisos

Encontré esta solución allí

Quiero crear un clon de la estructura de nuestro servidor de archivos multiterabyte. Sé que cp --parents puede mover un archivo y su estructura padre, pero ¿hay alguna forma de copiar la estructura del directorio intacta?

Quiero copiar a un sistema Linux y nuestro servidor de archivos está montado en CIFS allí.


Esto copia los atributos de directorios y archivos, pero no los datos de los archivos:

cp -R --attributes-only SOURCE DEST

Luego puede eliminar los atributos de los archivos si no está interesado en ellos:

find DEST -type f -exec rm {} /;


Esto funciona:

find ./<SOURCE_DIR>/ -type d | sed ''s//.//<SOURCE_DIR>//g'' | xargs -I {} mkdir -p <DEST_DIR>"/{}"

Simplemente reemplace SOURCE_DIR y DEST_DIR.


Esto resuelve incluso el problema con espacios en blanco:

En el directorio original / fuente:

find . -type d -exec echo "''{}''" /; > dirs2.txt

luego recípalo en el directorio recién creado:

mkdir -p <../<SOURCEDIR>/dirs2.txt


La siguiente solución funcionó bien para mí en varios entornos:

sourceDir="some/directory" targetDir="any/other/directory" find "$sourceDir" -type d | sed -e "s?$sourceDir?$targetDir?" | xargs mkdir -p


No sé si estás buscando una solución en Linux. Si es así, puedes intentar esto:

$ mkdir destdir $ cd sourcedir $ find . -type d | cpio -pdvm destdir


Podrías hacer algo como:

find . -type d >dirs.txt

para crear la lista de directorios, luego

xargs mkdir -p <dirs.txt

para crear los directorios en el destino



Sustituye target_dir y source_dir con los valores adecuados:

cd target_dir && (cd source_dir; find . -type d ! -name .) | xargs -i mkdir -p "{}"

Probado en OSX + Ubuntu.


Un script python de Sergiy Kolodyazhnyy publicado en Copy only folders not files? :

#!/usr/bin/env python import os,sys dirs=[ r for r,s,f in os.walk(".") if r != "."] for i in dirs: os.makedirs(os.path.join(sys.argv[1],i))

o desde el caparazón:

python -c ''import os,sys;dirs=[ r for r,s,f in os.walk(".") if r != "."];[os.makedirs(os.path.join(sys.argv[1],i)) for i in dirs]'' ~/new_destination

FYI:


cd /path/to/directories && find . -type d -exec mkdir -p -- /path/to/backup/{} /;