존재하지 않는 디렉토리에서 "찾기" 사용

존재하지 않는 디렉토리에서 "찾기" 사용

/my-directory존재하지 않는 경우 자동으로 아무 작업도 수행하지 않도록 하는 쉬운 방법이 있습니까?

find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm

버전:

  • 찾기: GNU findutils 4.5.10
  • 배쉬 4.2.53

답변1

find를 사용하여 오류 보고를 취소 2>/dev/null하거나 명령 실행을 완전히 피할 수 있습니다.

test -d /my-directory && find /my-directory -type f -mtime +14 -print0 | xargs -r0 rm

약간의 최적화 및 깔끔한 코드로서 일부 버전(귀하의 버전 포함)에서는 find이를 직접 수행할 수 있습니다.rm

test -d /my/directory && find /my-directory -type f -mtime +14 -delete

답변2

당신은 그것을 사용할 수 있습니다,

find /my-directory -type f -mtime +14 -print0 2>/dev/null | xargs -r0 rm

설명하다:

2> /dev/nullstderr을 로 리디렉션하는 것을 의미합니다 /dev/null.

  • /dev/null원하는 입력을 받아들이고 삭제하는 빈 장치입니다. 모든 출력을 억제하는 데 사용할 수 있습니다.

답변3

print0여기서는 유용하지 않습니다 xargs -r 0. find내장된 기능이 있습니다.

[ -d /my-directory ] && find /my-directory -type f -mtime +14 -exec rm {} +

또는 @terdon은 GNU find를 사용할 때 이 변형을 사용할 것을 제안합니다.

[ -d /my-directory ] && find /my-directory -type f -mtime +14 -delete

관련 정보