Linux文件拷貝(6)

本篇介紹文件拷貝操做,主要講兩個命令:centos

命令 對應英文 做用
tree[目錄名] tree 以樹狀圖列出文件目錄結構
cp 源文件 目標文件 copy 複製文件或者目錄

 

 

tree

tree命令能夠將一個目錄結構以樹狀圖的形式展現出來,便於咱們瞭解目錄層級關係。在進行文件操做前,這個命令有時頗有用。服務器

在這以前,須要注意的是,你的Linux環境可能沒有這個命令,好比個人centos服務器環境就沒有,這時你能夠本身安裝這個命令,輸入如下命令:spa

yum install tree

直接輸入tree命令能夠查看當前所在目錄的層級關係:code

//在a目錄下輸入
tree


//結果
.
└── b
    └── c
        └── 123.txt

也能夠指定目錄名,好比回到a目錄上層,再輸入命令:blog

tree a

//結果
a
└── b
    └── c
        └── 123.txt

注意兩次展現結果的區別,一個是從 . 開始,表當前目錄,一個是從 a 開始,表a目錄下。it

有時候一個文件夾裏內容太多,若是把所有層級展現出來,結構可能太長了,這時咱們只展現目錄就好,須要用到選項-d,使用它就能夠只展現目錄。table

仍是拿上面的a目錄演示,我在b目錄裏再建一個文件:class

touch a/b/test.txt
//這種寫法是能夠的

再看一下a目錄結構:test

tree a

//結果
a
└── b
    ├── c
    │   └── 123.txt
    └── test.txt

如今使用 -d 選項:yum

tree -d a

//結果
a
└── b
    └── c
        └── 123.txt

此時發現,b目錄裏的文件沒顯示了,可是c目錄裏還顯示了。關於這個,也多是個人環境緣由,有些命令包括以前已經提到的命令,在不一樣的Linux環境下可能表現有些許差別(我本身以爲),但功能都同樣,本身多試試吧。

 

cp

拷貝命令也是很簡單,它的結構是:

cp 源文件路徑 目標文件路徑

好比個人根目錄下,有一個readme.txt文件,我想將它複製到home目錄下,並重命名爲test.txt。若是當前目錄就是根目錄,那麼輸入:

cp readme.txt ~/test.txt
//~表示home目錄

此時在home目錄下,就有了test.txt文件。這時,若是你不想重命名,你可能這麼寫:

cp readme.txt ~/readme.txt

但其實,咱們能夠更簡單點:

cp readme.txt ~

這樣也是能夠的。因此記住了,若是不想重命名複製的文件,直接寫目標文件的路徑就好。

 

cp命令的幾個選項

cp命令的選項也有好幾個,這裏主要說三個:

命令 含義
-f 對於已經存在的目標文件直接覆蓋,不會提示
-i 覆蓋文件前提示
-r 拷貝一個目錄,目錄下的全部文件及目錄都拷貝

看含義就知道什麼意思了,先看 -f 選項,若是咱們不加這個選項,而後複製一個文件名已經存在的文件:

//  home目錄下已經有readme.txt這個文件了,而後再複製一份根目錄的readme.txt

cp /readme.txt .

結果:

cp: overwrite ‘./readme.txt’?

顯然咱們須要根據提示選擇是否須要覆蓋。那若是咱們不須要提示的話,就可使用 -f 這個選項了:

cp -f /readme.txt .

結果:

cp: overwrite ‘./readme.txt’?

 

what? 不是不會提示了嗎,怎麼還有提示?這個選項沒效果?剛開始我也懷疑是個人環境緣由,後來上網查詢才瞭解到,默認cp命令是有別名(alias cp='cp -i')的,沒法強制覆蓋,即便你用 -f 參數也沒法強制覆蓋文件。此時若是想看到效果,能夠臨時取消cp的alias:

unalias cp

再輸入上述複製命令就不會有提示了。不過顯然在平時使用過程當中,咱們不建議使用-f選項,連cp默認都是使用了 -i 選項,這樣作的好處是防止誤操做啊,全部咱們應該儘可能加上 -i 選項,防止不必的損失。

 

若是咱們想拷貝一個目錄,那麼必須加上 -r 這個選項,我在根目錄下新建了一個test目錄:

tree test

//結果
test
└── a
    ├── 123.txt
    └── b

如今就在當前目錄拷貝一份,並重命名爲test1:

cp test ./test1

//結果
cp: omitting directory ‘test’

咱們再加上 -f 選項:

cp -r test ./test1

這時沒有提示了,沒有提示就是最好的提示,能夠看到當前目錄下多了一個test1目錄。

相關文章
相關標籤/搜索