/tmp
이 파일 아래에서 100분보다 오래된 파일을 삭제하려고 합니다 .
차이점이 뭐야:
find /tmp -type f -mmin +100 -exec rm {} \;
그리고:
find /tmp -type f -mmin +100 -exec -delete
두번째- 일부 추가가 가능한가요?인쇄/에코삭제하는 모든 파일을 인쇄하도록 명령에서?
/tmp/hadoop-unjar7118762490947462979/META-INF/NOTICE was deleted !!!
답변1
파일을 삭제하는 동안 파일을 인쇄하는 두 가지 대안을 생각했습니다.
find /tmp -type f -mmin +100 -printf '%p was deleted!!\n' -delete
또는
find /tmp -type f -mmin +100 -exec rm -v {} \;
전자는 find
파일을 삭제하기 전에 GNU에게 파일 이름(전체 경로)을 인쇄하도록 지시하고, 후자는 find
각 파일 이름에 대해 실행하도록 지시하며, 이는 (GNU)에게 수행 중인 작업을 자세히 설명하도록 지시합니다.rm -v
-v
rm
전자의 출력은 다음과 같습니다.
/tmp/.sh_history.6668 was deleted!!
/tmp/krb5cc_6094 was deleted!!
/tmp/.sh_history.18394 was deleted!!
그리고 후자의 출력은 다음과 같습니다:
removed ‘/tmp/.sh_history.6668’
removed ‘/tmp/krb5cc_6094’
removed ‘/tmp/.sh_history.18394’
-exec rm {}
vs에서 주목해야 할 또 다른 점 은 $PATH를 동안 검색 -delete
한다는 것입니다 .-exec rm
rm
-delete
링크를 직접 취소하세요.문서. 일반적으로 문제는 아니지만 주의해야 할 사항이 있습니다.
예:
$ pwd
/tmp/jeff
$ ls
bar foo rm
$ cat rm
#!/bin/sh
echo Hi, I am the fake rm: "$@"
$ PATH=/tmp/jeff:$PATH
$ find . -type f -exec rm {} \;
Hi, I am the fake rm: ./rm
Hi, I am the fake rm: ./bar
Hi, I am the fake rm: ./foo
-delete
를 사용하면 find
기본적으로 깊이 우선 방식으로 검색 경로도 탐색됩니다. 이를 통해 나중에 입력하지 않을 디렉토리를 삭제할 수 있습니다. 디렉토리에서 사용하는 경우 find
with를 사용해야 합니다. 그렇지 않으면 존재한다고 생각하는 디렉토리를 찾을 수 없다고 불평하게 됩니다.-depth
-exec rm -rf {}
find