![디렉터리가 아닌 파일만 이동하시겠습니까? [복사]](https://linux55.com/image/98809/%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EA%B0%80%20%EC%95%84%EB%8B%8C%20%ED%8C%8C%EC%9D%BC%EB%A7%8C%20%EC%9D%B4%EB%8F%99%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
폴더 안의 모든 파일(폴더 제외)을 다른 디렉터리로 이동하고 싶습니다.
나는 이 명령을 사용해 왔습니다:
find . -maxdepth 1 -type f -exec mv {} destination_folder \;
하지만 이제 "exe_"로 시작하는 파일을 제외한 모든 파일을 이동하고 싶어서 다음을 시도했습니다.
find . -maxdepth 1 -type f -exec mv !(exe_*) part1a_si_atom-exp001 \;
그러나 이제는 디렉토리도 이동합니다. 어떡해?
답변1
!(exe_*)
find 명령을 실행하기 전에 쉘에 의해 해석되고 확장됩니다. 대신 이 -name
플래그를 사용하여 다음을 찾아보세요.
find . -maxdepth 1 -type f -not -name 'exe_*' -exec mv {} destination_folder \;
또한 오버헤드를 줄이기 위해 명령 종료자로 +
대신 사용하는 것이 좋습니다.;
-exec