我想wordpress-891.sql
從目前目錄(而不是子目錄內)中刪除任何看起來像的檔案。
會rm wordpress-*.sql
成功還是會從子目錄中刪除匹配項?
答案1
*
不。rm
如果目錄名稱匹配,則不會將其刪除 - 您需要該-r
標誌來刪除目錄。
因此,如果您確定要刪除這些文件,那麼這樣做是安全的。
還可以進行rm
互動
rm -i wordpress-*.sql
然後在刪除每個文件之前會要求確認
答案2
是的,它可以為您解決問題並刪除當前目錄中具有該架構的所有檔案。不,它不會刪除子目錄中的檔案。
當您不確定執行以下命令時會發生什麼:
rm wordpress-*.sql
然後只需使用以下命令運行它ls
:
ls wordpress-*.sql
您在輸出中看到的檔案將被刪除。
當您嘗試取得類似以下的清單時foo*
,最好使用-d
switch with來防止列出名為etcls
的目錄中的檔案。foobar/
ls -d foo*
此技巧適用於不用於遞歸完成工作的命令。
您可以做的另一件事是鍵入所需的輸入,例如:wordpress-*
然後按Ctrl+ Alt+ *,現在所有符合項目都會在您的命令前面自動鍵入。
答案3
答案4
如果您想尋找並刪除所有符合的文件,例如wordpress-*.sql
,您可以使用find
命令。 :)
例如,您想要刪除所有與wordpress-*.sql
under相符的文件test_dir
,請執行以下操作。
cd test_dir
find . -name "wordpress-*.sql" -exec rm -f {} \;
每當find
程式真正找到匹配的檔案時,它都會嘗試執行-exec
選項後面的命令。在這種情況下rm -f {}
將被執行並被{}
更改為匹配的檔案名稱。例如
rm -f wordpress-169.sql
您也可以使用選項設定子目錄的深度-maxdepth
。
cd test_dir
find . -maxdepth 3 -name "wordpress-*.sql" -exec rm -f {} \;
請注意,您必須-maxdepth
在其他選項之前指定選項。否則你可能會遇到你不想看到的結果。