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' _ {} +
여기서는 절대 경로를 사용하므로 어디에서나 실행할 수 있습니다.