![매개변수 목록이 너무 깁니다. 파일이 5000개만 있습니다. [중복]](https://linux55.com/image/70638/%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%20%EB%AA%A9%EB%A1%9D%EC%9D%B4%20%EB%84%88%EB%AC%B4%20%EA%B9%81%EB%8B%88%EB%8B%A4.%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%205000%EA%B0%9C%EB%A7%8C%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%5B%EC%A4%91%EB%B3%B5%5D.png)
폴더가 있어요5000파일을 다른 곳에 복사하고 싶어요.
이 작업을 수행하면 cp ../folder* .
다음 오류가 발생합니다.
-bash: /bin/cp: Argument list too long
그러나 getconf ARG_MAX
보상이 있습니다 262144
.
$ echo ../folder* |wc
1 5015 69144
이게 정상인가요? 이전에는 이 모든 파일을 복사할 수 있었습니다.
답변1
프로그램을 사용하여 매개변수를 반복합니다.
예를 들어find .. -type d -iname '*/folder*' -exec cp -a {} . \;
수동 루프 반복. 예:
for myDir in ../folder* ; do cp -a "$myDir" . ; done
다른 방법도 많이 있지만 위의 방법 중 하나가 필요에 적합합니다. (for 루프 예제는 속도가 느릴 수 있음)