서버 디렉토리의 이미지 파일에 대한 심볼릭 링크를 만들고 싶습니다. 현재 나는 PHP 함수를 사용하여 다음 명령을 실행하여 이 작업을 수행하고 있습니다 exec()
.
ln -sf path/to/source path/to/symlink
두 파일 이름은 동일합니다.
그리고 그것은 훌륭하게 작동합니다. 다음 단계에서는 원본 이미지와 함께 저장되는 이 특정 이미지의 다른 차원에 대한 심볼릭 링크를 만들고 싶습니다. 검색해서 다음 링크를 찾았습니다.검색 결과에 대해 명령 실행이 형식을 사용하는 방법을 설명합니다.
find ... -execdir rm {} \;
이제 내가 얻은 가장 먼 것은 올바른 정규식과 함께 find를 사용하여 파일(전체 경로)을 나열하는 것입니다. 하지만 이 출력을 사용하고 각 파일을 대상 디렉터리의 정확한 이름에 연결하는 방법을 모르겠습니다.
추신: 원본 이미지와 해당 경로에만 액세스할 수 있습니다.
편집하다:
앞서 언급한 대로 이미지 경로와 해당 파일 이름에만 액세스할 수 있습니다. 그리고 사용 가능한 이미지 크기가 얼마나 되는지 모르겠습니다. 그래서 원본 이미지 파일의 모든 이미지 크기가 소스 파일에 연결되도록 find와 ln을 결합하고 싶습니다. 예를 들어 다음과 같이 원본 이미지의 경로를 얻습니다.
path/to/file/microlancer.png
지금까지 나는 다음 명령을 실행해 왔습니다.
ln -sf path/to/file/microlancer.png path/to/symlink/microlancer.png
find를 실행하면 다음 파일을 얻을 수 있습니다.
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
path/to/symlink/
위의 각 파일에 심볼릭 링크를 추가 해야 합니다 .
PHP는 여기서 문제가되지 않습니다. Linux에서는 명령만 필요합니다. 나는 모든 파일에 접근할 수 없다는 것을 명확히 하기 위해 방금 PHP를 언급했습니다.
답변1
find /path/to/file -name '*.png' -exec ln -s '{}' /path/to/symlink ';'
답변2
cd /path/to/file
find `pwd` -name "*.png" | xargs -I {} ln -s {} path/to/symlink/