가변 디렉터리 이름으로 경로를 지정할 수 있나요?

가변 디렉터리 이름으로 경로를 지정할 수 있나요?

묻다이것mpv 플레이어 및 DVD 문제와 관련하여 나는 보다 일반적인 질문을 우연히 발견했습니다. 일반적으로 디렉토리 중 하나에 변수 이름이 있는 경로를 지정하는 것이 가능합니까?

명령으로 파일을 실행하고 싶다고 가정해 보겠습니다. 실행 파일은 in 에 있지만 /dir1/dir2/dir3/but 의 이름은 dir2항상 포함되어 있지만 변수입니다 dir3( 와 유사하지만 while 과 VIDEO_TS는 항상 다릅니다 )./media/username/NAME-OF-DVD/VIDEO_TS/NAME-OF-DVD

명령을 사용하여 파일을 실행하려면 경로를 지정해야 합니다. 이와 같은 명령을 사용할 수 있습니까(디렉토리 이름 중 하나가 "universal"일 수 있는 경로 사용)?

답변1

Bash는 와일드카드를 활용할 수 있습니다. 와일드카드를 사용하면 여러 값과 일치하는 패턴을 지정할 수 있습니다. REGEX와 유사하게 작동하지만 동일하지는 않습니다.

  • *(pattern)패턴을 0회 이상 일치시킵니다.
  • ?(pattern)패턴을 0회 또는 1회 일치시킵니다.
  • +(pattern)패턴을 1회 이상 일치시킵니다.
  • [ ][a-z]a부터 z까지 포함하여 여기에 포함된 값과 일치할 수 있습니다.
  • ( | )파이프 양쪽의 값을 일치시킬 수 있음

패턴을 넣지 않으면 패턴이 와일드카드 역할을 합니다.

따라서 이와 같은 경로는 다음 /dir1/dir2/dir3/과 같이 표현될 수 있습니다.

  • /dir1/*/dir3/
  • /dir1/dir*/dir3/
  • /dir1/*(dir2|otherdir)/dir3/
  • /dir1/dir*[1-99]/dir3/

자세한 내용은 다음 링크를 확인하세요.http://mywiki.wooledge.org/glob

아니면 이거:http://www.linuxjournal.com/content/bash-extend-globbing

답변2

/dir1/dirX/dir3/dir4서로 다른 디렉터리 수준이 단일 디렉터리인 한, 섹션 dirX이 변경되지 않고 dirX/dirY/dirZor 중 하나만 될 수 있는 경우 다음과 같이 참조할 수 있습니다.dirXdirYdirZ/dir1/dirX/dir3/dir4/dir1/*/dir3/dir4

하지만 DVD 제목에는 일반적으로 공백이 포함되어 있으므로 귀하의 경우에는 mpv /media/username/*/VIDEO_TS작동할 것입니다 . 따라서 전체 경로를 큰따옴표 사이에 넣는 것이 좋습니다."/media/username/*/VIDEO_TS"

관련 정보