찾기를 사용하여 폴더를 제외하고 빈 파일을 삭제하세요.

찾기를 사용하여 폴더를 제외하고 빈 파일을 삭제하세요.

나는 일반적으로 다음 명령을 사용하여 찾기를 통해 홈 디렉터리의 빈 파일과 폴더를 삭제합니다.

find /home/tjuh -empty -delete

그러나 폴더를 제외하고 싶었습니다. 즉, /home/tjuh/.local/share/Steam/steamapps/common/다음을 시도했습니다.

find . -not -path '/home/tjuh/.local/share/Steam/steamapps/common/' -empty

해당 폴더가 검색에서 제외되는지 확인하고 싶은데 실제로는 원하는 대로 작동하지 않습니다.

어떤 제안이 있으십니까?

답변1

매개변수 -path는 패턴이므로 와일드카드를 사용해야 합니다. 그렇지 않으면 정확히 일치합니다.

find . -not -path "./.local/share/Steam/steamapps/common/*" -empty

또한 절대 경로나 상대 경로를 혼합해서 사용해서는 안 됩니다. 위는 상대경로이고, 아래는 절대경로입니다.

find /home/tjuh -not -path "/home/tjuh/.local/share/Steam/steamapps/common/*" -empty

답변2

이 디렉터리를 제외하려는 경우그리고 그들의 모든 후손들, -prune필요한 것은 다음과 같습니다.

find "$HOME" -path "$HOME/.local/share/Steam/steamapps/common" -prune -o -empty -delete

이는 경로가 일치하면 $HOME/.local/share/Steam/steamapps/common( -prune해당 경로와 하위 항목 무시) 계속하고, 그렇지 않으면 -empty( -delete그리고 계속)을 의미합니다.

답변3

노력하다:

rm `find /home/tjuh -empty | grep -v "^/home/tjuh/.local/share/Steam/steamapps/common/"`

관련 정보