Copiar un directorio recursivamente usando enlaces duros para cada archivo
2024-12-30
Suelo utilizar enlaces duros o hard links habitualmente, sobre todo de mis descargas, a la hora de organizar el contenido multimedia y poder ahorrar espacio en disco, Universo arr.
Hay veces que necesito realizar enlaces duros de un directorio que a su vez contiene más ficheros dentro de otros directorios.
Para crear un enlace duro de un fichero lo haremos con el comando:
ln fiechero1 fichero2
ls -l
-rw-r--r--. 2 carlos carlos 0 ago 27 21:16 fichero1
-rw-r--r--. 2 carlos carlos 0 ago 27 21:16 fichero2
Supongamos que tenemos la siguiente estructura:
/tmp/enlaces > tree -L 3 --inodes
[ 2499] .
├── [ 2503] dirA
│ ├── [ 2504] fichero1
│ ├── [ 2505] x
│ │ └── [ 2506] fichero2
│ └── [ 2507] y
│ └── [ 2508] fichero3
├── [ 2502] fichero1
└── [ 2502] fichero2
4 directories, 5 files
Vemos que existen dos ficheros (fichero1
y fichero2
) con el mismo inodo, se corresponde al enlace duro creado en el paso anterior
Para copiar un directorio de forma recursiva usando enlaces duros para cada archivo lo haremos con
cp -al dirA dirB
[ 2499] .
├── [ 2503] dirA
│ ├── [ 2504] fichero1
│ ├── [ 2505] x
│ │ └── [ 2506] fichero2
│ └── [ 2507] y
│ └── [ 2508] fichero3
├── [ 2509] dirAB
│ ├── [ 2504] fichero1
│ ├── [ 2510] x
│ │ └── [ 2506] fichero2
│ └── [ 2511] y
│ └── [ 2508] fichero3
├── [ 2502] fichero1
└── [ 2502] fichero2
7 directories, 8 files
Vemos como los inodos de los ficheros que estan en los directorios x
e y
de dirA
son los mismos que los que se encuentran en dirB
Espero que te haya gustado, pasa un gran día 🐧