我試圖刪除目錄中的文件,使用rm
並且不刪除腳本中的目錄本身。我看到的例子只是在目錄本身中做到這一點,並且我想在沒有瀏覽的情況下做到這一點。Bash通配符使用
我試圖
rm "$(dirname $1)/filetokeep/*"
,但它無法正常工作。任何幫助?
我試圖刪除目錄中的文件,使用rm
並且不刪除腳本中的目錄本身。我看到的例子只是在目錄本身中做到這一點,並且我想在沒有瀏覽的情況下做到這一點。Bash通配符使用
我試圖
rm "$(dirname $1)/filetokeep/*"
,但它無法正常工作。任何幫助?
引用通配符會抑制擴展。
rm -- "$(dirname -- "$1")/filetokeep"/*
使用--
確保值不能被解釋爲可選參數,而不是那些位置(這樣的事情還是工作,如果目錄$1
開始與-
命名)。
謝謝,我是bash的新手。我正在嘗試一堆東西,看起來像我過度使用引號。刪除我原來的嘗試報價也適用。 – user2805565
@ user2805565徹底刪除引號會導致錯誤;你只是想把他們從最後一個角色。 –
...實際上,它應該是'rm'$(dirname「$ 1」)/ filetokeep「/ *'是完全正確的(內部引號圍繞'$ 1' - '$()'創建一個新的引用上下文,所以這確實按照給定的方式工作)。 –
爲什麼'dirname $ 1'? – user567879
.sln文件被傳入,其目錄名稱相同 – user2805565