절대 경로에 와일드카드 문자를 사용하여 파일 생성

절대 경로에 와일드카드 문자를 사용하여 파일 생성

절대 경로에서 정규식을 사용하려고 합니다. 예를 들어

mkdir /root/.mozilla/firefox/*.default/test

.default로 끝나는 폴더 이름은 동적으로 생성되지만 항상 .default로 끝납니다. *.default를 시도했지만 작동하지 않습니다.

절대 경로에 정규식을 사용할 수 있나요?

답변1

mkdir /root/.mozilla/firefox/*.default/test

test디렉토리가 아직 존재하지 않으면 이는 어떤 것과도 일치하지 않습니다(따라서 mkdir별표가 있는 경로가 표시되고 오류가 발생할 수 있거나 설정에 따라 쉘이 실패한 glob으로 다른 작업을 수행합니다).

기존 디렉터리를 일치시키고 그 안에 다른 디렉터리를 만들려면 다음을 수행해야 합니다.

(cd /root/.mozilla/firefox/*.default/ && mkdir test)

또는

for d in /root/.mozilla/firefox/*.default/ ; do 
    mkdir "$d"/test
done

첫 번째는 glob이 하나의 디렉토리에만 일치한다고 가정합니다. 더 많은 경우 결과는 셸 및 해당 버전에 따라 달라집니다. 두 번째는 testglob과 일치하는 모든 디렉터리에 디렉터리를 생성해야 합니다.

답변2

내가 옳다면 다음 명령으로 이를 수행할 수 있습니다.

mkdir "$(ls -d /root/.mozilla/firefox/*.default)"/test

관련 정보