Rename沒有指定目的地的
沒有指定目的地的 mv ./*
有什麼作用?
在按下 Return 鍵之前,我不小心忘記指定目的地。如果不
mv ./*
指定目標,將目前目錄下的文件和目錄移動到哪裡?
如果最後一個參數是一個目錄,那麼您只需將當前工作目錄中的所有文件和目錄(名稱以點開頭的除外)移動到該目錄中。如果有兩個文件,則第一個文件可能已覆蓋第二個文件。
以下是一些展示:
兩個以上的文件,最後一個參數是一個文件
$ mkdir d1 d2 d3 $ touch a b c e $ mv * mv: target 'e' is not a directory
兩個以上的文件,最後一個參數是一個目錄
$ mkdir d1 d2 d3 $ touch a b c $ mv -v * 'a' -> 'd3/a' 'b' -> 'd3/b' 'c' -> 'd3/c' 'd1' -> 'd3/d1' 'd2' -> 'd3/d2'
兩個文件
$ touch a b $ mv -v * 'a' -> 'b'
進一步說明
shell 將 glob(
*
) 擴展為mv
. glob 通常按字母順序展開。mv
總是看到文件和目錄的列表。它永遠不會看到 glob 本身。該命令
mv
支持兩種移動方式。一個是mv file ... directory
。另一個是mv old-file-name new-file-name
(或mv old-file-name directory/new-file-name
)。