이미지(png, bmp, jpg)와 확장자가 없는 파일이 포함된 폴더가 있습니다.
확장자 없이 파일만 이동하는 방법을 모르겠습니다. 모두 무작위로 번호가 매겨진 파일입니다.
답변1
배쉬와 함께
shopt -s extglob
mv -- !(*.jpg|*.png|*.bmp) targetdir/
답변2
부정을 위해 ksh 확장 glob 연산자를 사용하십시오 !(...)
. 따라서 ksh
, zsh -o kshglob
또는 bash -O extglob
:
rm -- !(*.*) /dest
이름에 점이 포함되지 않은 파일을 이동합니다( Except 이외의 쉘에서는 파일에 점이 포함 zsh
되어 있어도 해당 파일이 없으면 이름이 지정된 파일을 이동할 수 있습니다 !(*.*)
).
부정하려면 zsh
확장 전역 연산자를 사용하십시오 .^
zsh -o extendedglob
rm -- ^*.* /dest
위의 모든 경우에서 숨겨진 파일은 이동되지 않습니다. 첫째로 이름에 점이 포함되어 있기 때문입니다(점으로 시작함). 또한 glob 자체가 리터럴로 시작하지 않는 한 숨겨진 파일이 glob에서 제외되기 때문입니다 .
.
파일을 이동하고 싶지만 .foo
이동하고 싶지 않은 경우 .foo.png
다음을 수행할 수 있습니다.
mv -- ^?*.*(D) /dest # with zsh -o extended-glob
mv -- !(?*.*) /dest # with bash -O extglob -O dotglob
# or zsh -o kshglob -o dotglob -o nobareglobqual
# or env FIGNORE='@(.|..)' ksh93
mv -- @(.|)+([^.]) /dest # with bash -O extglob or AT&T ksh