centos 使用 CP 命令 不提示 覆蓋


今天 在我的VPS上拷一個目錄,但放的地方有一個同名目錄並且里面還有文件。如是直接拷過去,結果有N個要確認替換的提示,直接CTRL+C,在網上搜了把,發現有幾個方法能夠解決,方法例如以下:

一般我們使用的命令是cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir,

    -r的意思是遞歸復制,也就是復制目錄及其下全部文件

    -f的意思是遇到同名的文件,不提示,直接覆蓋

    但為什么我們用這兩個參數,系統還是會提示覆蓋呢?

    這是由於。系統在安裝的時候使用了別名,防止我們誤操作,覆蓋了不該覆蓋的文件。使用別名命令就能夠看到詳細的配置了。

[test@Server home]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    從上邊我們能夠看出,我們輸入的cp命令,事實上是“cp -i”命令,

    也就是無論我們怎么輸入 cp -rf,事實上運行的是 cp -i -rf , 也無怪乎總是提問是否覆蓋了。

    從上邊的命令我們能夠知道,其它幾個命令,也使用了別名。比如ll,ls mv,rm等。

    那么怎樣解決問題呢?

[test@Server home]# vi ~/.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
    僅僅要在對應的命令前加#號,就能夠凝視掉該命令了。

保存退出,然后你就能夠用純粹的原命令了。

 

    事實上另一種更簡單的方法能夠解決問題,就是在cp前加一個反斜杠如: \cp -f file dir 就能夠了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM