다양한 하위 디렉터리에 있는 여러 특정 파일에서 소프트 링크 생성

다양한 하위 디렉터리에 있는 여러 특정 파일에서 소프트 링크 생성

ln -s해당 이름에 포함된 모든 파일에 대한 소프트 링크( )를 만들고 에서 사용할 수 있게 만들고 싶습니다 .folder2*foo*folder1

for, find및 및 조합을 사용해 보았지만 find -exec ln얻은 것은 이라는 끊어진 링크 *foo*나 내부의 모든 항목에 대한 링크 뿐입니다 folder1.

답변1

이 작은 조각을 사용할 수 있습니다

#!/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' _ {} +

여기서는 절대 경로를 사용하므로 어디에서나 실행할 수 있습니다.

관련 정보