Eu tenho um grande diretório "myfiles" cheio de documentos diversos e não quero modificar sua estrutura.
Portanto, criei (vários) outros diretórios para cada classe de documentos. Por exemplo, eu tenho um diretório "images" que possui links simbólicos para cada arquivo .jpg
ou .cr2
no diretório "myfiles", além de outros arquivos descritivos para cada link simbólico (com o mesmo nome de arquivo) com descrição e outros metadados. Os links simbólicos no diretório / images podem ter um nome diferente do arquivo vinculado original.
Estou tentando encontrar a maneira mais simples de garantir que todos os arquivos de imagem no diretório "myfiles" tenham um link simbólico para o diretório "images".
Veja um exemplo da estrutura de pastas
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
deve resultar
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
você pode ver a contagem de hardlinks na segunda coluna.
rm
esses diretórios de link simbólico e use, pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
por exemplo, para obter links físicos com nomes de arquivos alterados programaticamente apenas para aqueles arquivos que correspondem aos seus jpgs. Você pode obter muito mais do que fora dela - como lotes com base em tempos de mudança e etc.
find /myfiles -type f
em um arquivo e usáfind /images -type l -exec readlink {} \; | egrep myfiles
-lo para obter uma lista de arquivos com links simbólicos/images
e iterar sobre os resultados, fazendo umsed
em cada um para excluir os caminhos no primeiro arquivo salvo, já que eles já tem o link simbólico e os arquivos restantes são os que não possuem o link simbólico.