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