Como executar ln nos resultados da busca

0

Eu quero criar links simbólicos para arquivos de imagem em um diretório no servidor. Atualmente estou fazendo isso executando este comando usando a função php exec() :

ln -sf path/to/source path/to/symlink

Os dois nomes de arquivos são os mesmos.

E está funcionando muito. Na próxima etapa, quero criar links simbólicos para outros tamanhos dessa imagem específica que são armazenados ao lado da imagem original. Eu procurei e encontrei este link: Execute um comando para encontrar resultados , o que explica usar este formato:

find ... -execdir rm {} \;

Agora, o mais longe que consegui é listar arquivos (caminho completo) usando o find com o regex adequado. Mas não tenho idéia de como usar essa saída e vincular cada arquivo ao nome exato no diretório de destino.

P.S .: Eu só tenho acesso à imagem original e ao seu caminho.

EDITAR:

Como mencionei, só tenho acesso ao caminho da imagem e seu nome de arquivo. E não sei quantos tamanhos da imagem estão disponíveis. Por isso, quero combinar encontrar e ln para que todos os tamanhos de imagem do arquivo de imagem original sejam vinculados aos arquivos de origem. Por exemplo: eu obtenho o caminho para uma imagem original como esta:

path/to/file/microlancer.png

até agora eu estava executando este comando:

ln -sf path/to/file/microlancer.png path/to/symlink/microlancer.png

com uma execução de um achado eu obtenho estes arquivos:

path/to/file/microlancer-260x185.png
path/to/file/microlancer-120x120.png
path/to/file/microlancer-705x321.png
path/to/file/microlancer-450x223.png
path/to/file/microlancer-150x150.png
path/to/file/microlancer-495x350.png
path/to/file/microlancer-300x149.png
path/to/file/microlancer-705x350.png
path/to/file/microlancer-450x350.png
path/to/file/microlancer-180x180.png
path/to/file/microlancer-36x36.png

E preciso de um link simbólico em path/to/symlink/ para cada arquivo acima.

php não é um problema aqui. Eu só preciso do comando no linux. Mencionei apenas o php para esclarecer que não tenho acesso a todos os arquivos.

    
por Ali Sh 08.09.2018 / 12:06

1 resposta

0
find /path/to/file -name '*.png' -exec ln -s '{}' /path/to/symlink ';'
    
por 08.09.2018 / 14:48