0
나는 makefile을 가지고있다.경로의 모든 디렉토리 제거하기
DIRS = dir1 dir2 path/to/dir3
all:
$(foreach DIR,$(DIRS), somecommand --source=$(SOURCEDIR)/$(DIR) --dest=$(DIR);)
clean:
rm -rf $(DIRS)
는 현재 clean
대상 dir1
, dir2
및 dir3
제거하지만 나는 그것이 dir1
, dir2
및 path
을 제거하고 싶습니다.
clean:
$(foreach DIR,$(DIRS), rm -rf --parents $(DIR);)
쉬운 방법이 있나요?
(나에게 위험하게 들리 겠지만 ...) 실수로 절대 경로를 사용하는 경우에만 위험합니다. 그렇다면 다시 한번, 오타가 하나 밖에 없기 때문에, 결론적으로 - 오히려 위험합니다. – DanielGibbs
첫 번째 단어가 찍히고 로컬 디렉토리에 표시되지 않으므로 절대 경로에는 문제가되지 않습니다. 위 코드는 현재 작업 디렉토리에 뿌리를 둔 경로에서만 작동합니다. 예를 들어'/ usr/bin '을'DIRS'에 추가하면 위의 명령은'rm -rf usr'을 실행합니다 (아마도'usr' 로컬 서브 디렉토리가없는 한 아마 작동하지 않을 것입니다). – MadScientist