Linux經常使用命令:cp,mv,rm

cp(copy)linux


  cp命令能夠複製文件或者目錄,還能夠創建連接文件。bash

[root@Linux ~]# cp [-adfilprsu] 來源文件(source) 目標文件(destination)
[root@linux ~]# cp [options] source1 source2 source3 .... directory

-R, -r, --recursive      copy directories recursively
-p     same as--preserve=mode,ownership,timestamps
-a, --archive     same as -dR--preserve=all [能夠保留連接文件],通常只有root執行,經常使用於歸檔備份

複製文件ide

一、可不能夠把一個文件複製成另外一個文件? Ok
spa

二、可不能夠把一個文件複製成多個文件? Not ok
日誌

三、可不能夠把多個文件複製成一個文件? Not ok
orm

四、可不能夠把多個文件複製到一個目錄? Ok
遞歸


規則:若是命令須要指定 src , dst 兩個參數時, dst一般是最後一個參數做爲目標而且有且只有一個。
ip


# cp a b c d   # 什麼意思? source: a b c , destination: d , 把 a b c 拷貝到目錄 drem

若是有多個 src 源,那麼dst 目的地必定必須是目錄。
it


# cp /etc/a.txt  /tmp/b

若是b是目錄且存在: 則把 a.txt 複製到 b 目錄下,並保持原文件名

若是b是文件:

    若是b不存在,則複製a.txt並重命名爲b

    若是b存在,則提示是否覆蓋


# cp -r /etc/init.d/  /tmp/b

若是b是目錄:

    b目錄已存在: 則把 init.d 複製到 b 目錄下,並保持原文件名

    b目錄不存在: 則把 init.d 複製到 /tmp 目錄下,重命名爲 b

若是b是文件且存在: Error , 能夠執行,可是結果錯誤


以上狀況, 能夠先考慮: 文件是否存在, 而後再考慮是目錄 or 文件, 應該更合理。



複製目錄

# cp /etc  /tmp

cp: omitting directory '/etc'

# cp -r /etc /tmp  # 複製目錄須要使用 -r 遞歸選項


複製隱藏文件

用 cp * /tmp 這種類型的操做中,怎麼能把隱藏文件一塊兒拷貝過去呢?

咱們打上面這條命令只能將非隱藏的文件所有複製。 緣由是:(通配符沒法文件名匹配以"."開頭的文件) 


# cp -a . /tmp  # right

# cp .* /tmp   # 僅僅拷貝隱藏文件



mv(move)


  mv命令一般用於【移動文件】,以及【重命名】。

mv 在操做目錄時, 不須要指定 -r 選項就直接能夠。


# mv /etc/somedir /tmp/somefile    # error, 不能用目錄去覆蓋文件

# mv /etc/somedir /tmp/somedir     # yes 

    若是/tmp/somedir 存在, 則保存在 /tmp/somedir/ 目錄下

    若是/tmp/somedir 不存在, 則保存在 /tmp/ 目錄下,並重命名



rm(remove)


  rm命令用於刪除文件及目錄。 有了它基本不會再用 rmdir 這個了。


rm -rf 命令使用規則:

一、生產環境中,不要一直以root用戶登陸

二、操做時,比的是慢和仔細,而不是快, 按下 ENTER 以前,必定要反覆檢查

三、關鍵業務操做,最好找一個同事在旁邊看,做證

四、開啓模擬終端軟件日誌記錄功能 

相關文章
相關標籤/搜索