/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/null
stderr을 로 리디렉션하는 것을 의미합니다 /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