# 一、複製文件夾cp ``` cp -a vue vue-copy ``` 將vue 文件夾下麵的所有文件,複製到同目錄下vue-copy文件夾下麵 ![image](https://img2023.cnblogs.com/blog/3202319/202307/3202319-202307271 ...
一、複製文件夾cp
cp -a vue vue-copy
將vue 文件夾下麵的所有文件,複製到同目錄下vue-copy文件夾下麵
- -a:相當於 -d、-p、-r 選項的集合,這幾個選項我們一一介紹;
- -d:如果源文件為軟鏈接(對硬鏈接無效),則複製出的目標文件也為軟鏈接;
- -i:詢問,如果目標文件已經存在,則會詢問是否覆蓋;
- -l:把目標文件建立為源文件的硬鏈接文件,而不是複製源文件;
- -s:把目標文件建立為源文件的軟鏈接文件,而不是複製源文件;
- -p:複製後目標文件保留源文件的屬性(包括所有者、所屬組、許可權和時間);
- -r:遞歸複製,用於複製目錄;
- -u:若目標文件比源文件有差異,則使用該選項可以更新目標文件,此選項可用於對文件的升級和備用。
1、cp 命令基本用法
cp 命令既可以複製文件,也可以複製目錄。我們先來看看如何複製文件,例如:
[root@localhost ~]# touch cangls
#建立源文件
[root@localhost ~]# cp cangls /tmp/
#把源文件不改名複製到 /tmp/ 目錄下
如果需要改名複製,則命令如下:
[root@localhost ~]# cp cangls /tmp/bols
#改名複製
如果複製的目標位置已經存在同名的文件,則會提示是否覆蓋,因為 cp 命令預設執行的是“cp -i”的別名,例如:
[root@localhost ~]# cp cangls /tmp/
cp:是否覆蓋"/tmp/cangls"?y
#目標位置有同名文件,所以會提示是否覆蓋
接下來我們看看如何複製目錄,其實複製目錄只需使用“-r”選項即可,例如:
[root@localhost ~]# mkdir movie
#建立測試目錄
[root@localhost ~]# cp -r /root/movie/ /tmp/
#目錄原名複製
二、移動文件夾mv
[root@localhost ~]# mv 【選項】 源文件 目標文件
移動之後,源文件會被刪除,類似剪切
mv a.txt dist
移動a.txt文件到dist文件夾下麵
- -f:強制覆蓋,如果目標文件已經存在,則不詢問,直接強制覆蓋;
- -i:交互移動,如果目標文件已經存在,則詢問用戶是否覆蓋(預設選項);
- -n:如果目標文件已經存在,則不會覆蓋移動,而且不詢問用戶;
- -v:顯示文件或目錄的移動過程;
- -u:若目標文件已經存在,但兩者相比,源文件更新,則會對目標文件進行升級;
【例 1】移動文件或目錄。
[root@localhost ~]# mv cangls /tmp
#移動之後,源文件會被刪除,類似剪切
[root@localhost ~]# mkdir movie
[root@localhost ~]# mv movie/ /tmp
#也可以移動目錄。和 rm、cp 不同的是,mv 移動目錄不需要加入 "-r" 選項
如果移動的目標位置已經存在同名的文件,則同樣會提示是否覆蓋,因為 mv 命令預設執行的也是 “mv -i” 的別名,例如:
[root@localhost ~]# touch cangls
#重新建立文件
[root@localhost ~]# mv cangls /tmp
mv:是否覆蓋"tmp/cangls"?y
#由於 /tmp 目錄下已經存在 cangls 文件,所以會提示是否覆蓋,需要手工輸入 y 覆蓋移動
【例 2】強制移動。
之前說過,如果目標目錄下已經存在同名文件,則會提示是否覆蓋,需要手工確認。這時如果移動的同名文件較多,則需要一個一個文件進行確認,很不方便。
如果我們確認需要覆蓋已經存在的同名文件,則可以使用 “-f” 選項進行強制移動,這就不再需要用戶手工確認了。例如:
[root@localhost ~]# touch cangls
#重新建立文件
[root@localhost ~]# mv -f cangls /tmp
#就算 /tmp/ 目錄下已經存在同名的文件,由於"-f"選項的作用,所以會強制覆蓋
【例 3】不覆蓋移動。
既然可以強制覆蓋移動,那也有可能需要不覆蓋的移動。如果需要移動幾百個同名文件,但是不想覆蓋,這時就需要 “-n” 選項的幫助了。例如:
[root@localhost ~]# ls /tmp
/tmp/bols /tmp/cangls
#在/tmp/目錄下已經存在bols、cangls文件了
[root@localhost ~]# mv -vn bols cangls lmls /tmp/、
"lmls"->"/tmp/lmls"
#再向 /tmp/ 目錄中移動同名文件,如果使用了 "-n" 選項,則可以看到只移動了 lmls,而同名的 bols 和 cangls 並沒有移動("-v" 選項用於顯示移動過程)
三、修改文件的名稱mv
mv a.txt b.txt
將a.txt 的文件名修改為b.txt的文件名, 裡面的內容不會修改