在專案中有個這樣的需求就是在每次編譯後將某個資料夾下的檔案替換為乙個固定資料夾下的檔案,如果沒有那就直接複製了,但是如果有那就麻煩了,他會乙個個問你是否要覆蓋,這樣是不是很麻煩,下面我們用小demo來學習一下:
1、正常複製命令:
cp -rf /www/cms.whd.com/conf/ mycms/
-r 是遞迴的意思,會把問價下的子檔案目錄都會複製
-f 引數是強制複製,比如你在a檔案中有個檔案名叫b,然後你把c資料夾裡面的另乙個檔名叫做b的複製到a裡面,這個時候回衝突,然後會提示你要不要繼續複製,加上-f就不會提示你了。
但是當我們執行上面的那個命令時還是會提示你要不要覆蓋,這是因為系統中設定了別名:
[root@sjhl-wn-cms01v cms.fang.com]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
其中就有cp 當我們執行 cp -f時 就相當於執行了 cp -if 所以會詢問你要不要覆蓋,當然了如果只是很少的手動修改那可以如果量大了那就很麻煩,所以可以做如下處理:
1、修改檔案(不太推薦,太危險了)
[root@sjhl-wn-cms01v whd.com]# sudo vim ~/.bashrc
# .bashrc
# user specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
如果不需要的的話可以把 alias cp='cp -i' 使用 # 注釋掉
2、直接使用命令實現(推薦)
\cp -rf /www/cms.whd.com/conf/ /www/cms.manager/core/conf/
如果寫在指令碼中可以使用下面的方式 $(pwd) 或者 $`pwd` 來獲取當前的目錄路徑
\cp -rf /www/cms.whd.com/conf/ $(pwd)/target/cms.manager/bdp/core/conf/
我們看到 只是在命令前加了乙個反斜槓(\),這樣就不會再次確認了,而且只在命令中起作用比較好。 linux下資料夾的建立 複製 剪下
在home目錄下有wwwroot目錄,wwwroot下有sinozzz目錄,即 home wwwroot sinozzz 一 目錄建立 在 home wwwroot目錄下新建乙個sinozzz123的資料夾 mkdir home wwwroot sinozzz123 二 目錄複製 1.把 home ...
Linux cp強制覆蓋 複製資料夾
cp rf x 預設情況下,cp覆蓋時,無論加什麼引數 f 之類的 還是提示是否覆蓋。原因是 伺服器會預設增加別名 alias cp cp i 當你執行cp時,其實執行的是cp i。root ltt01 alias alias cp cp i alias egrep egrep color auto...
linux 下資料夾的用處
1 根分割槽 啟動系統所必需的檔案 如核心檔案 和系統配置檔案 2 boot分割槽 用於存放啟動檔案 包括linux核心 3 home分割槽 用於存放使用者資訊 4 temp分割槽 用於存放臨時性檔案 5 usr分割槽 用於存放安裝的第三方軟體 6 var分割槽 用於存放經常變化的系統檔案 7 us...