각 폴더에서 하위 폴더를 찾을 때 폴더 이름에 따른 명명 규칙을 따르나요?

각 폴더에서 하위 폴더를 찾을 때 폴더 이름에 따른 명명 규칙을 따르나요?

다음과 같은 이름의 여러 파일이 포함된 "사이트" 폴더가 있습니다.

  • bu.my-url.com
  • dud.myurl.com
  • [must-be-indentical_string].myurl.com

/themes/amu_[must-be-indentical_string]각 사이트 폴더에서 사이트 폴더 이름과 동일한 지 확인하고 싶습니다.

/sites/[must-be-indentical_string].myurl.com/themes/amu_[must-be-indentical_string]

그런 순서가 있을까요?

답변1

다음을 수행할 수 있습니다.

#! /bin/sh -
cd /path/to/sites || exit
ret=0
for file in */themes/amu_*; do
  [ -e "$file" ] || continue
  dir=${file%%/*}
  theme=${file##*/amu_}
  case $dir in
    ("$theme".*) ;; # OK
    (*) printf>&2 '%s\n' "Mismatch: $file"
        ret=1;;
  esac
done
exit "$ret"

GNU의 경우 find다음도 참조하세요.

cd /path/to/sites &&
  find . -mindepth 3 -maxdepth 3 -regextype posix-basic \
    -path './*/themes/amu_*' \
    ! -regex '\./\(.*\)\..*/themes/amu_\1' \
    -fprintf /dev/stderr 'Mismatch: %P\n'

관련 정보