execv의 파일은 삭제하지 않고 다른 곳의 모든 디렉터리는 어떻게 삭제할 수 있나요? [폐쇄]

execv의 파일은 삭제하지 않고 다른 곳의 모든 디렉터리는 어떻게 삭제할 수 있나요? [폐쇄]

내가 홈 디렉터리에 있고 콘텐츠와 몇 개의 파일이 포함된 2개의 디렉터리(이름을 모른다고 가정)가 있는 "Apple"이라는 디렉터리가 있다고 가정해 보겠습니다. 집에서 터미널을 열고 CD를 사용하지 않고 "Apple"에서 이 두 디렉토리를 삭제하고 싶습니다.

사용할 수 없습니다'rm -r 홈/애플/*/'나도 못쓰겠다'rmdir 홈 디렉토리/Apple/*'.

돕다?

답변1

나는 "홈 디렉토리"가 당신의 홈 디렉토리를 의미한다고 가정합니다. 이것은 디렉토리가 아니라 인수 없이 ~실행될 때 끝나는 것 입니다 .cd/home

~/Apple삭제하려는 디렉터리가 두 개 있습니다 . dir1이를 이라고 부르겠습니다 dir2. 삭제하고 싶지 않은 다른 디렉토리가 있다고 가정하면 다음을 사용할 수 있습니다.

rm -rf ~/Apple/dir1 ~/Apple/dir2

두 디렉터리와 해당 내용을 모두 삭제합니다. 홈 디렉토리에 있는 경우 ~/명령에서 두 경로 이름을 모두 생략할 수 있습니다.

만약 이것들이오직디렉토리를 ~/Apple사용하면 사용할 수 있습니다

rm -rf ~/Apple/*/

Apple홈 디렉터리에서 이 디렉터리의 모든 하위 디렉터리를 삭제합니다 . 와일드카드 패턴은 디렉토리로만 해석할 수 있으므로 */후행 슬래시가 사용되는 한 디렉토리가 아닌 경우에는 Apple영향을 받지 않습니다 . 마찬가지로, ~/홈 디렉토리에 있는 경우 무시될 수 있습니다.

당연히 입력 오류로 인해 너무 많은 데이터가 삭제된 경우 복원할 수 있도록 제대로 백업된 데이터를 테스트해야 합니다.

답변2

findApple 내에서 직접 모든 디렉토리를 찾아 삭제할 수 있습니다 .

find home/Apple -type d -maxdepth 1 -mindepth 1 -exec rm -rf {} \;

관련 정보