Crie links de vários arquivos específicos em vários subdiretórios

1

Eu quero criar links suaves ( ln -s ) para folder2 de todos os arquivos que contêm *foo* em seu nome e podem ser encontrados em alguns ou em todos os subdiretórios de folder1 .

Eu tentei com for , find e find -exec ln , e uma combinação deles, mas tudo que eu obtenho é um link quebrado chamado *foo* ou um link para tudo dentro de folder1 .

    
por Krotanix 26.10.2017 / 13:56

1 resposta

0

Você pode usar este pequeno trecho

#!/bin/bash

folder1="/path/to/folder1"
find "$folder1" -type f -name '*foo*' -exec \ 
sh -c 'for f; do ln -s "$folder1" "/path/to/folder2/${f##*/}"; done' _ {} +

Isso pode ser executado em qualquer lugar, pois estou usando caminhos absolutos aqui.

    
por 26.10.2017 / 14:21