내 find
명령은 다음과 같습니다.
find /jobs/logs/* -prune -name '*.log' -type f -mtime +1 |
while read LOGFILE
do
echo $LOGFILE
done
다음 오류로 인해 이 작업이 실패했습니다.
/usr/bin/find: arg list too long
누구든지 이 문제를 해결하는 방법을 제안할 수 있습니까?
(이것이 계속된다내 이전 질문.)
답변1
디렉토리를 반복해 봅시다 find
. 그게 바로 그 일입니다! 내 기반이전 답변:
find /jobs/logs/. -name . -o -type d -prune -o
-type f -mtime +1 -exec sh -c 'echo "$0"' {} \;
-exec
그나저나, 제가 명령을 호출 하곤 했다는 점을 기억하세요 find
. 그게 바로 명령의 목적입니다.
또한 read LOGFILE
실제로 참고하시기 바랍니다.아니요입력 줄을 읽습니다. 선행 공백을 제거하고 백슬래시를 해석합니다. 한 줄을 읽는 신뢰할 수 있는 방법은 입니다 IFS= read -r LOGFILE
.
답변2
find
명령을 다음으로 변경해 보십시오 .
find /jobs/logs/. ! -name . -prune -name '*.log' -type f -mtime +1
이는 디렉터리를 find
제외 .
하고 더 이상 다운되지 않도록 나머지 디렉터리를 모두 정리하라는 의미입니다.
자세한 내용은 이 페이지를 확인하세요.휴대용 현재 디렉토리로 검색 제한