지저분한 오래된 하드 드라이브에 사진을 잔뜩 복사하려고 하는데 Windows 파일 탐색기에서 열 수 없고(묻지 마세요...) 사랑하는 할머니를 돕기 위해 이 작업을 해야 합니다. Babun(훌륭한 Windows 셸)을 사용하여 탐색할 수 있습니다.
지금까지 나는 다음 명령을 시도했습니다.
$ find /cygdrive/h/Documents\ and\ Settings -name '*.jpeg|png|JPEG' -exec cp '{}' /cygdrive/f/tof \;
$ find /cygdrive/h/Documents\ and\ Settings -name '*.(jpeg|png|JPEG)' -exec cp '{}' /cygdrive/f/tof \;
결과가 없습니다. 뭔가 빠졌나요?
답변1
find's
-name
조건자는 정규식이 아닌 glob을 사용합니다.
와 함께 정규 표현식을 사용하려면 (또는 대소문자를 구분하지 않음)을 find
사용하세요 . 예를 들어:-regex
-iregex
find ... -regextype egrep -iregex '.*\.(jpe?g|png)$' ...
또는 괄호를 사용하여 여러 -name
OR -iname
조건자를 OR할 수 있습니다. 예를 들면 다음과 같습니다.
find ... \( -iname '*.jpg' -o -iname '*.jpeg' -o -iname '*.png' \) ...
노트:쉘이 이를 서브쉘에 대한 요청으로 해석하지 못하도록 대괄호를 백슬래시로 이스케이프해야 합니다 -bash: syntax error near unexpected token
(''
답변2
난 그렇게 생각하지 않아찾다이를 수행하는 데 적합한 도구는동기화더 나을 수도 있지만 모든 파일을 하나의 디렉터리에 저장하려면 find를 사용하면 됩니다. 하지만 명령줄에서 {} 주위의 작은따옴표를 제거해야 합니다. 이는 리터럴 { } 대신 파일 이름.