Linux下如何使CP命令不提示覆蓋(轉)

在Linux下使用CP命令,常常會提示是否覆蓋,若是是太批量的文件覆蓋,總是這麼提示,會很煩的。那如何解決這個問題呢?bash

    咱們先來看一下緣由吧!遞歸

    通常咱們使用的命令是cp -rf sourcefile targetdir或cp -r -f sourcefile targetdir,ci

    -r的意思是遞歸複製,也就是複製文件夾及其下全部文件get

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

    但爲何咱們用這兩個參數,系統仍是會提示覆蓋呢?io

    這是由於,系統在安裝的時候使用了別名,防止咱們誤操做,覆蓋了不應覆蓋的文件。使用別名命令就能夠看到具體的配置了。function

[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'test

    從上邊咱們能夠看出,咱們輸入的cp命令,實際上是「cp -i」命令,配置

    也就是無論咱們怎麼輸入 cp -rf,其實執行的是 cp -i -rf , 也無怪乎老是提問是否覆蓋了。file

    從上邊的命令咱們能夠知道,其餘幾個命令,也使用了別名,例如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 -f file dir 就能夠了!

相關文章
相關標籤/搜索