와일드카드를 사용하여 심볼릭 링크 만들기

와일드카드를 사용하여 심볼릭 링크 만들기

와일드카드를 사용하여 심볼릭 링크를 만들고 싶습니다.

ln -s jetty_server01.file jetty_*.file

따라서 이름이 지정된 파일에 대한 모든 요청은 동일한 디렉터리의 대상 jetty_*.file에 연결됩니다 .jetty_server01.file

그게 가능합니까?

CentOS 7을 사용합니다.

답변1

아니요, 파일 시스템이 작동하는 방식은 그렇지 않습니다. 파일 시스템 스토리지기존의파일 이름, 아님잠재적인파일 이름.

" *"는 디렉토리에 있는 모든 기존 파일 이름을 사용자가 지정한 패턴과 일치시켜 파일 이름을 완성하는 셸 기능인 "와일드카드"를 나타냅니다. 프로그램에서 파일을 열면 이런 일이 발생하지 않습니다.

이와 같은 것을 원한다면 자신만의 파일 시스템을 구현하거나 실제 잠재적인 파일 이름 각각에 대한 링크를 만들어야 합니다.

답변2

예... 이름에 별표가 있는 심볼릭 링크를 만들 수 있습니다.

두 번째 파일 이름(별표가 있는 이름)을 인용하면 사용자가 제공하는 명령이 이 작업을 수행합니다.

$ ln -s jetty_server01.file 'jetty_*.file'
$ ls -l jetty_\*.file 
lrwxrwxrwx 1 ilkkachu ilkkachu 19 Jan 12 19:56 jetty_*.file -> jetty_server01.file

그러나 이것은 아마도 그다지 유용하지 않을 것입니다... 사용할 때마다 파일 이름을 인용해야 합니다. jetty_*.file셸에서 이를 사용하면 jetty_*.file및 다음을 포함하여 일치하는 모든 파일 이름으로 확장되기 때문입니다 jetty_server01.file.

$ ls jetty_*.file
jetty_server01.file  jetty_*.file@

정확한 이름을 가진 파일이 있다고 해서 glob이 다른 파일과 일치하는 것을 막지는 않습니다.

예를 들어 가장 최근의 파일 세트에 연결하려는 경우 jetty_current.file유사하거나 다른 이름을 지정하는 것이 더 쉽고 덜 혼란스러울 수 있습니다. 물론 링크를 수동으로 업데이트해야 합니다.

(셸 이외의 프로그램에서는 glob을 확장하지 못할 수 있으므로 jetty_*.file구성 파일 등에서 사용할 수 있습니다. 하지만 이 역시 다소 혼란스러울 수 있습니다.)

관련 정보