2019年4月6日 星期六

Ubuntu cp 和 mv 指令

Ubuntu  cp 和 mv 指令複製和搬移整個資料夾


    在 Ubuntu / Linux 上,複製檔案是用 cp 指令,而搬移檔案則是用 mv 指令 ( mv 也可以拿來做更名用哩 !) ,cp 這個指令可以用 -r 或大寫 -R 選數來指示說要複製子資料夾,其實,這個 r 的意思是 recursive ( 遞迴 ),就是等於告訴 cp 指令要整個資料夾都去繞一圈的意思,所以,用 cp 指令複製整個資料夾的指令如下: ( 以阿舍要複製 /home/ayu/xyz 整個資燉夾到 /tmp 為例 )

$ cp -r home/ayu/xyz/. /tmp

另外,如果是要搬移整個資料的話只要在來源和目的資料夾( 已經存在的 ) 加個 “/” 就可以了,例如,阿舍要將 drupal_commons 這個資料夾裡的所有檔案和資料夾都要搬到 xyz 這個資料夾裡,那麼操作指令就是下面這樣。

$ mv drupal_commons/ xyz/

而如果是要用 mv 指令來變更檔案名稱的,就是在 mv 指令的後面直接放原始檔案的完整路徑和新檔案名稱及完整路徑就可以了,舉例來說,阿舍要把家目錄下的 xyz.txt 檔案名稱換成 abc.txt 的話,操作指令如下:

$ mv ~/xyz.txt ~/abc.txt

Linux 系統中,重新命名資料夾或檔案也可以透過同一個指令來達成,這個指令是 mv!mv 是 move 的縮寫,他除了移動檔案資料夾的功能外也可以同時重新命名。
所以其實仔細想想拿他來重新命名檔案也不會很難理解啦,
重新命名時只是把檔案移動到同一個資料夾,然後趁著移動時把檔名給順便改了!

說了這麼多那 mv 指令到底該怎麼使用呢?
# mv $1 $2
# $1: 舊檔案或資料夾名稱
# $2: 新的檔案或資料夾名稱
mv oldname.txt newname.txt

上面的方法是用來重新命名單一檔案或資料夾,
但是當一個目錄資料夾底下有很多有特定規則檔名的檔案需要改名,
例如相機產生的檔案 IMG001.jpg~IMG999.jpg 超多檔案,
這絕對不可能直接用 mv 一個個慢慢敲來改名的。
這時候另一個指令就可以派上用場了,
rename 這個指令可以用來批次修改檔名共同的部分,使用方式如下:
# rename $1 $2 $3
# $1: 要被取代的關鍵字
# $2: 新的關鍵字
# $3: 檔名符合這個規則的才取代

# 把 IMG001.jpg, IMG002.jpg… 換成 img001.jpg, img002.jpg… 
rename IMG img IMG*

# 把所有 .htm 檔案改成 .html
rename .htm .html *.htm

# 把檔案 foo1, ..., foo9, foo10, ..., foo278.
# 改成 foo001, ..., foo009, foo010, ..., foo278.
rename foo foo0 foo?
rename foo foo0 foo??

沒有留言:

張貼留言