Tengo un gran directorio "myfiles" lleno de documentos misceláneos y no quiero modificar su estructura.
Por lo tanto, creé (varios) otros directorios para cada clase de documentos. Por ejemplo, tengo un directorio de "imágenes" que tiene enlaces simbólicos a cada uno .jpg
o un .cr2
archivo en el directorio "myfiles" más otros archivos descriptivos para cada enlace simbólico (con el mismo nombre de archivo) con descripción y otros metadatos. Los enlaces simbólicos en el directorio / images pueden tener un nombre diferente del archivo vinculado original.
Estoy tratando de encontrar la forma más sencilla de asegurarme de que todos y cada uno de los archivos de imagen en el directorio "myfiles" tengan un enlace simbólico en el directorio "images".
Vea un ejemplo de la estructura de carpetas
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
debería resultar
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
puede ver el recuento de enlaces en la segunda columna.
rm
esos directorios de enlaces simbólicos y úselos, pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
por ejemplo, para obtener enlaces duros con nombres de archivo alterados programáticamente solo para aquellos archivos que coinciden con sus archivos jpgs. Puede obtener mucho más que eso, como lotes basados en tiempos de cambio, etc.
find /myfiles -type f
a en un archivo y luego usarlosfind /images -type l -exec readlink {} \; | egrep myfiles
para obtener una lista de archivos que están enlazados y/images
luego iterar sobre los resultados haciendo unsed
en cada uno para eliminar las rutas en el primer archivo que guarda ya que ya tienen el enlace simbólico y los archivos que quedan son los archivos que no tienen el enlace simbólico.