bash: /usr/bin/mv: Argument list too long

김유상·2023년 4월 14일
0

find <source_path> -type f| xargs -i mv {} <destination_path>

리눅스 터미널에서 너무 많은 파일을 제어하려고 할때, 제목과 같은 오류가 발생하기 마련이다. 필자도 7만개 이상의 파일을 옮길 때, 해당 오류가 발생했는다. 결국 상단에 보이는 find, xargs 명령어로 해결했다. 다만 해당 조합은 속도가 그리 빠르지 않기 때문에 생각보다 오래 걸릴 수 있다.

find는 <source_path>의 모든 폴더, 파일을 검색해주며 따라서 -type을 통해 file만을 필터링 해주었다.

xargs는 앞서 find로 검색한 내용을 매개변수로 넘기게 해준다. -i 옵션을 통해 {} 기호에 매개변수를 담아준다는 의미이다.

따라서 mv 명령어의 source로 find의 output stream을 전달하고 <destination_path>에 정상적으로 파일을 이동할 수 있게 된다.

profile
continuous programming

0개의 댓글