IT skill/Linux 파일이 너무 많을 때 Argument list too long 에러 해결법 - 반응형 폴더안에 들어있는 데이터가 너무 많으면 ls 명령어 입력시에 리스팅을 다 하기 어렵기 때문에 Argument list too long 이라고만 말한다. 그래서 응용방법으로 ls *.jpg 이런식으로 조건검색을 해 볼 것이고, 이런 방법도 먹히지 않는다. cp, mv 등등 모두 동작하지 않는다. 리눅스를 low-level 까지 잘 사용하진 못하지만 이런 방법이 있었다. find 파일을_찾을_위치 -type f |grep 찾을파일형식 | awk ‘{print “cp -r “$1” ./}’ | bash # example find ./ -type f |grep *.jpg | awk '{print "cp -r "$1" ./}' | bash example을 자세히 풀어보자. find ./ -type f |grep *.jpg >> 이 명령어는 jpg 확장자의 파일 형태를 현재경로에서 찾는다는 명령어이다. 이 명령어만 입력하면 찾아낸 파일들을 쭉 리스팅 할 것이다. 이제 awk를 보자. $1은 find ./ -type f |grep *.jpg 명령어를 치면 만약 이렇게 출력이 된다고 가정해보자. 123.jpg 124.jpg 125.jpg 그러면 $1은 첫 명령어에서는 123.jpg, 두 번째 명령어에서는 124.jpg ...가 된다. 예를 들어서, '{print "cp -r "$1" ./}' 이렇게 입력했다고 하면 첫 번째 명령 수행은 cp -r 123.jpg ./ 두 번째 명령 수행은 cp -r 124.jpg ./ 이렇게 실행된다. print는 awk의 "action"에 해당하는 동작으로 명령을 프린트해준다. https://recipes4dev.tistory.com/171 리눅스 awk 명령어 사용법. (Linux awk command) - 리눅스 파일 텍스트 데이터 검사, 조작, 출력. 1. awk 명령어. 대부분의 리눅스 명령들이, 그 명령의 이름만으로 대략적인 기능이 예상되는 것과 다르게, awk 명령은 이름에 그 기능을 의미하는 단어나 약어가 포함되어 있지 않습니다. awk는 최 recipes4dev.tistory.com 마지막으로 | bash는 bash로 실행하겠다는 뜻이다. 결론은 find ./ -type f |grep *.jpg | awk '{print "cp -r "$1" ./}' | bash 이런식으로 awk와 find를 응용하면 리스트가 너무 많을 때 하고 싶은 동작을 실행할 수 있다. 반응형 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Beelog 저작자표시 비영리 변경금지 Contents 당신이 좋아할만한 콘텐츠 kubernetes 설치 에러 Err:4 https://packages.cloud.google.com/apt kubernetes-xenial Release404 Not Found 2024.07.09 Ubuntu CUDA, CUDNN 버전 확인 방법 2023.06.24 리눅스 resource temporarily unavailable 2023.04.17 [Ubuntu] 원격과 로컬의 파일을 주고 받는 scp 사용법 2023.01.22 댓글 0 + 이전 댓글 더보기