![execv의 파일은 삭제하지 않고 다른 곳의 모든 디렉터리는 어떻게 삭제할 수 있나요? [폐쇄]](https://linux55.com/image/14737/execv%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%80%20%EC%82%AD%EC%A0%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EB%8B%A4%EB%A5%B8%20%EA%B3%B3%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%8A%94%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%82%AD%EC%A0%9C%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
내가 홈 디렉터리에 있고 콘텐츠와 몇 개의 파일이 포함된 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
find
Apple 내에서 직접 모든 디렉토리를 찾아 삭제할 수 있습니다 .
find home/Apple -type d -maxdepth 1 -mindepth 1 -exec rm -rf {} \;