![다양한 하위 디렉터리에 있는 여러 특정 파일에서 소프트 링크 생성](https://linux55.com/image/120423/%EB%8B%A4%EC%96%91%ED%95%9C%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%9E%88%EB%8A%94%20%EC%97%AC%EB%9F%AC%20%ED%8A%B9%EC%A0%95%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%86%8C%ED%94%84%ED%8A%B8%20%EB%A7%81%ED%81%AC%20%EC%83%9D%EC%84%B1.png)
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' _ {} +
여기서는 절대 경로를 사용하므로 어디에서나 실행할 수 있습니다.