지정된 파일을 삭제하지 않고 디렉터리의 파일 삭제를 취소하는 방법

지정된 파일을 삭제하지 않고 디렉터리의 파일 삭제를 취소하는 방법

내 디렉토리에 이러한 파일이 있다고 가정해 보겠습니다.

├── __init__.py
├── __init__.pyc
├── __pycache__
├── recognizer.wsgi
├── requirements.txt
├── src
└── upld

upld그 안에서 디렉토리를 제외한 모든 것을 삭제하고 싶습니다 . 이 작업을 수행하는 더 빠르고 좋은 방법이 있는지 궁금합니다.

감사해요.

답변1

find . -path ./upld -prune -o ! -path . -print

find이는 하위 디렉터리를 포함하여 현재 디렉터리의 모든 항목을 삭제 하는 데 사용됩니다 . 단, 해당 경로는 ./upld삭제되지 않습니다. (초기 검색 경로에서 건너뛰려는 콘텐츠의 전체 상대 경로여야 한다는 점에 유의하세요.)

실행하고 출력을 확인한 -print다음 -delete.


관련 디렉터리의 상위 디렉터리에서 보안 옵션:

mkdir newdir
mv olddir/upld newdir
rm -rf olddir
mv newdir olddir

즉, upld안전을 위해 하위 디렉터리를 다른 곳으로 이동한 다음 이전 디렉터리를 완전히 삭제하세요.

답변2

당신이 그것을 사용한다고 가정하면 적어도 몇 가지 방법이 있습니다 bash. 먼저 ls또는 을 사용하여 수행 echo하고 결과에 만족하면 다시 시도하는 것이 좋습니다 rm.

1 삭제하려는 항목을 명확하게 설명하세요. 예를 들면 다음과 같습니다.

ls -d [_a-s]*

2 무엇을 유지하고 싶은지 명확하게 설명하세요. 예를 들면 다음과 같습니다.

shopt -s extglob # just once per session
ls -d !(upld)

bash 패턴 일치에 대한 자세한 내용은 다음에서 확인할 수 있습니다.여기.

관련 정보