파일 및 디렉터리를 삭제하는 명령 찾기 [닫기]

파일 및 디렉터리를 삭제하는 명령 찾기 [닫기]

다음 구문을 사용하여 폴더를 삭제할 수 없습니다. 도와주실 수 있나요?

작업: 특정 경로에서 6시간이 지난 파일 및 폴더 삭제

find $file -name "*" -mmin +360 -exec rm -f {}\;

답변1

명령에 2가지 문제가 있습니다.

  1. 이 명령은 rm -f dir이름이 지정된 디렉터리를 삭제하지 않습니다 dir. 이 rmdir명령을 사용하거나 를 사용해야 합니다 rm -r dir.

  2. 삭제하려면 디렉터리가 비어 있어야 합니다. 파일이 있는 경우 dir1/file1해당 명령은 먼저 dir1삭제를 시도한 다음(실패함) 삭제를 시도합니다 dir1/file1.rm -r

수정 사항의 두 번째 부분은 간단합니다. -depthfind 명령에 깊이 우선 순서로 파일을 처리하도록 지시하는 플래그를 추가하는 것입니다.

수정의 첫 번째 부분은 더 어렵고 원하는 작업에 따라 다릅니다.

문제는 "주어진 경로에서 6시간이 지난 파일 및 폴더 삭제"라는 문구에 있습니다. dir112시간 전에 생성 하고 dir1/file111시간 전에 생성했지만 1시간 전에 수정했다면 어떻게 하시겠습니까? 귀하의 설명에서 알 수 있듯이 파일이 추가된 지 11시간 전에 마지막으로 수정되었기 때문에 디렉토리를 삭제하고, 한 시간 전에 수정되었기 때문에 파일을 삭제하려는 것이 아닙니다. 하지만 파일에는 디렉터리가 필요합니다.

내 추측으로는 삭제하려는 것 같습니다.비어 있는마지막으로 수정된 지 6시간 이상 지난 디렉터리입니다. 더 명확하게 하기 위해 여기에 추가 괄호가 있는 명령이 있습니다. 이것이 무엇을 -o의미하는지 알아야 합니다 or.

    find $file -depth -mmin +360 '(' '(' -type f -exec rm -f '{}' ';' ')' -o \
           '(' -type d -empty -exec rmdir {} ';' ')' ')'

귀하의 버전의 find 객체가 -empty이를 무시하고 비어 있지 않은 디렉토리를 삭제할 수 없다는 오류 메시지를 무시하는 경우.

답변2

찾다/목차-cm 분+-삭제

이 옵션은 어디에서 사용할 수 있나요?

  • -cmin창조의 시간
  • -mmin시간 변경
  • -amin입장 시간에 대해

상황에 따라 사용할 수 있으며 올바른 경로를 제공했는지 확인하십시오 /dir. 그렇지 않으면 전체 운영 체제가 종료될 수 있습니다.

관련 정보