리눅스 명령어 이슈 [Argument list too long]

hamonjamon·2023년 1월 19일
0

원인

  • 다음의 리눅스 명령어 사용 시 Argument list too long이 발생!

  • 이 에러는 find 명령어 수행 시 한 번에 리스팅(리스팅:작업 중에 있는 디렉토리에 있는 내용의 리스트)할 수 있는 파일의 개수를 초과했을 경우 나오는 메시지이다.

  • 결론적으로 해당 디렉토리에 파일, 디렉토리 개수가 너무 많아 발생한 것이다.


해결

  • 그래서 찾은 후 수행할 작업 명령어를 추가해주었다.

  • exec 명령어 {} \; : 찾은 파일들에 대해서 쉘 명령어를 사용해서 특정명령실행

    • {} : find로 찾은 파일리스트

    • \; : -exec와 -ok는 반드시 escape 된 세미클론(\;)으로 종료해야 하며 이는 옵션의 끝을 의미한다.

    find /sec/1/nonverbal/*/*/ -name "*.wav" -mtime +30 -exec rm -rf {} \;


  • 참고로 삭제하는 대상의 기준이 파일이 아닌 디렉토리일 경우 -name 옵션을 빼준 뒤 다음과 같이 수정해주는 방법도 있다.

    find /sec/*/nonverbal/*/* -type d -mtime +30 -exec rm -rf {} \;


0개의 댓글