찾기 명령은 "숫자"(0-9)로만 구성된 디렉토리 이름을 나열합니다.

찾기 명령은 "숫자"(0-9)로만 구성된 디렉토리 이름을 나열합니다.

특정 경로에는 다음과 같은 일부 디렉터리(파일 이름으로 날짜)가 있습니다.

  • 디렉토리 이름이 20180423과 같은 경우 나열되어야 합니다.
  • 디렉터리 이름이 20180423-backup 또는 20180423backup과 유사한 경우 나열되지 않아야 합니다.

답변1

여기서는 이중 부정을 사용하고 싶습니다.

LC_ALL=C find . ! -name '*[!0-9]*' -type d

즉, 이름에 숫자가 아닌 숫자가 포함되지 않은 디렉토리 유형의 파일을 나열합니다.

그렇지 않은 경우 LC_ALL=C일부 find구현(GNU 포함)에서는 find이름에 현재 로케일에서 유효한 문자를 형성하지 않는 바이트 시퀀스가 ​​포함된 파일(예: répertoireiso8859-1( mkdir $'r\xe9pertoire') 인코딩 파일)을 나열할 수도 있습니다.

를 사용하면 zsh다음 작업도 수행할 수 있습니다.

print -rC1 -- **/<->(ND/)

답변2

GNU가 있는 경우 다음을 찾으세요.

find . -regex '^./[0-9]*$'

변경된 경우 정규식의 시작 부분( )을 ^./시작 경로( )와 일치하도록 조정하세요..

답변3

두 가지 솔루션:

GNU 사용 find:

find /particular/path -type d -regextype egrep -regex '.*/[0-9]{8}'

표준 find:

find /particular/path -type d -name '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

/particular/path이 명령은 이름이 8자리로 구성된 디렉토리를 찾아 해당 경로 이름을 표시합니다.

이러한 디렉토리의 내용을 보고 싶다고 "목록"으로 표시하는 경우 -exec ls {} ';'.

관련 정보