linux文件cp
A. linux的cp怎麼覆蓋
我們平常在Linux中使用 cp 命令時,會發現將一個目錄中文件復制到另一個目錄具有相同文件名稱時,即使添加了 -rf 參數強制覆蓋復制時,系統仍然會提示讓你一個個的手工輸入 y 確認復制,所添加的rf參數是不起作用的。
原因:
cp命令被系統設置了別名,相當於cp=『cp -i』。
查詢alias命令
[root@localhost sonarqube]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
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'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
通過上述輸出,可以看出,我們平時使用 cp 命令,雖然沒有添加任何參數 ,但系統默認會在我們使用 cp 命令時自動添加 -i 參數
-i, --interactive
prompt before overwrite
1
2
1
2
-i 即交互的縮寫方式,也就是在使用 cp 命令作文件覆蓋操作之前,系統會要求確認提示.這個本來是系統的一個保險措施.如果有很多文件要復制,覺得一個一個輸入y 確認麻煩的話,可以使用如下方法解決:
強制復制
建議大家使用方式一,因為取消別名的話很容易造成風險,萬一又忘記恢復別名,以後的復制都不會有提示信息。
有提示信息可以多一層保險嘛,是人都會有犯混的時候,給自己加一個保險,有保障呀.
方式一
使用原生的cp命令
/bin/cp -rf xxxx
1
1
方式二
取消cp命令別名
unalias cp
1
1
去掉 cp 命令的別名,這時你再用 cp -rf 復制文件時,就不會要求確認啦.
復制
B. Linux cp命令怎麼使用
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的命令一樣,功能十分強大。
語法: cp [選項] 源文件或目錄 目標文件或目錄
說明:該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。
該命令的各選項含義如下:
- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經存在的目標文件而不提示。
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝。
- p 此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
- l 不作拷貝,只是鏈接文件。
需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,用cp命令拷貝文件後,這個文件就會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
例子:
Cp -i file1 file2 (將文檔 file1 復製成 file2 . –i為提示確認。)
cp file1 dir1 將文檔 file1 復制到目錄 dir1 下,文件名仍為 file1.
cp /tmp/file1 . 將目錄 /tmp 下的文檔 file1復制到現行目錄下,檔名仍為 file1.
cp /tmp/file1 file2 將目錄 /tmp 下的文檔 file1現行目錄下,檔名為file2
cp -r dir1 dir2 (recursive ) 復制整個目錄.若目錄 dir2 不存在,則將目錄dir1,及其所有文檔和子目錄,復制到目錄 dir2 下,新目錄名稱為dir1.若目錄dir2不存在,則將dir1,及其所有文檔和子目錄,復制為目錄 dir2.
C. linux cp命令一個目錄復制到另一個目錄
linux復制指定目錄下的全部文件到另一個目錄中
復制指定目錄下的全部文件到另一個目錄中
文件及目錄的復制是經常要用到的。linux下進行復制的命令為cp。
假設復制源目錄 為 dir1 ,目標目錄為dir2。怎樣才能將dir1下所有文件復制到dir2下了
如果dir2目錄不存在,則可以直接使用。《Linux就該這么學》
cp -r dir1 dir2
例:cp -r /data01/sinopec/pos/. /data01/sinopec/pos-pc/
即可。
如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2
如果這時使用cp -r dir1 dir2,則也會將dir1目錄復制到dir2中,明顯不符合要求。
ps:dir1、dir2改成對應的目錄路徑即可。
cp -r /home/www/xxx/statics/. /home/www/statics
D. linuxcp命令如何使用
用於復制文件或目錄。
常用參數:
-f force:強行復制文件或目錄,不管文件或目錄是否存在;
-d:復制時保留文件鏈接;
-i -interactive:覆蓋文件之前先詢問用戶;
-r:遞歸處理,將指定目錄下的文件與子目錄一並處理,若源文件或目錄的新蓋不屬於目錄或符號鏈接,則一律視為普通文件處理。
E. LINUX命令的cp -r 和-R的區別是
cp -r 的作用是遞歸,可復制目錄,如果復制目錄必須加此選項。
cp -R的作用僅僅是復制目錄。
不過cp -r 和-R命令功能上是等價的。不加-r或者-R的時候,只輸入命令cp時只拷貝文件,不拷貝文件夾,加上後則會拷貝文件夾——包括下一級的子文件夾,以及子文件夾中的子文件夾,以此類推。
(5)linux文件cp擴展閱讀:
cp命令還有以下幾種用法:
cp -p可以保留許可權、屬主、時間戳。
cp -d作用為默認鏈接文件是復制鏈接指向的源文件,-d 復制鏈接文件本身。
cp -L作用為保存鏈接所指向的文件,默認cp 就是,不需要-L。
cp -a作用為歸檔復制,常用於備份,相當於cp -dr --preserve=all。
cp -v作用為復制過程可見。
cp -s 作用為創建新的符號鏈接文件,指向原符號鏈接文件,能保證鏈接文件可以使用
cp -u作用為只復制更新的文件
F. Linux裡面cp加不加-a的區別是什麼
cp命令可以理解為英文單詞的縮寫,其功能為復制文件或目錄。添加參數-a 等價於「dpr」選項 1.-p 保留源文件或目錄的所有屬性2.-r 遞歸復制文件和目錄-3.d 當復制符號連接時,把目標文件或目錄也建立為符號連接,並指向與源文件或目錄連接的原始文件或目錄.簡單地說就是保留原文件屬性的前提下復制文件 ,查詢命令《Linux就該這么學》。
G. linux 下的cp命令
unix文化中是利用多個工具,通過管道來實現的,不能怪cp本身。
你這個需求也許應該用發送email的命令的某個選項,
假設它叫mail命令,並且有個帶附件文件的功能選項
-a,
那麼mail
-a
file
就是你要的解
H. linux cp命令拷貝結束的標志
linux cp命令拷貝結束的標志是cp復制後的文件名稱被改變了。
cp 命令是真正的數據拷貝命令,即拷貝元數據,也會拷貝數據。
I. linux如何復制文件
linux系統使用cp命令即可將一個文件夾裡面的文件復制到另外一個文件夾裡面。
這個命令相當於dos下面的命令,具體用法是:cp–r源文件目的文件,其中參數r是指連同源文件中的子目錄一同拷貝。../ 和 ./ 代表的 是上級目錄以及當前目錄。使用時的兩種情況:
1、處在當前目錄復制當前目錄下文件到別的目錄:cp文件名稱別的文件目錄路徑
例如,在orz文件夾下有兩個子文件夾a和b,a中有文件x.c,b中無文件。此時我們在a文件夾中命令如下:cpx.c../b/。
2、處在當前文件夾下復制另外文件夾下的文件到當前文件夾下:cp路徑/文件名稱./例如和上面例子一樣,命令如下:cp../a/x.c./。
(9)linux文件cp擴展閱讀:
Linux系統復制錯誤文件要刪除的命令:
命令RM是用來刪除文件的,與DOS下的RM(刪除一個空目錄)是不同的,應該注意。對於rm命令有三個常見的參數:-i、-r和-f。例如,您想刪除名為Test:Rm-ITest的文件
系統會問:RM:刪除測試?Y,文件將不會被刪除,直到你按回車。這樣做的原因是Linux沒有像DOS恢復刪除命令,或者你可以使用pcTool和其他工具來保存刪除文件,刪除文件在Linux中不能得救,因此有必要使用這個參數刪除之前讓你再次確認。
J. linux學習中,關於文件復制的cp命令,其中有一個 -i 的命令有點問題
cat~/.bashrc
你會發現cp默認就等於了cp -i
aliascp='cp-i'
所以導致你無論cp還是cp -i都是一樣的效果
我每次用linux之前都會把這句alias cp='cp -i'注釋掉
附上我常用的alias文件吧,以後直接替換就可以了,操作步驟:
1.先進入編輯模式
vim~/.bashrc
2.跳轉到文字的結尾:一直按pagedown按鍵,到最後一行,再按end到文字結尾
3.按a,或者o,進入編輯模式
3.ctrl+u是一行一行刪除,把所有內容都刪除掉
4.復制粘貼以下代碼
#.bashrc
#
aliasrm='rm-i'
#aliascp='cp-i'
aliasmv='mv-i'
aliasll="ls-l"
#修改alias文件
aliasaliasvim="vim/root/.bashrc"
#重載alias文件使其生效,每次修改後都要刷新
aliasaliasource="source/root/.bashrc"
#修改環境變數,比如添加jre,tomcat,redis
aliasprofilevim="vim/etc/profile"
#重載環境變數,使其生效
aliasprofilesource="source/etc/profile"
#重啟網卡
aliasnetworkrestart="servicenetworkrestart"
#列出此伺服器的網卡配置文件
aliasnetworkvim="cd/etc/sysconfig/network-scripts/&&ls|grepifcfg-"
#修改DNS解析
aliasnameservervim="vim/etc/resolv.conf"
#修改hosts
aliashostsvim="vim/etc/hosts"
#查看埠當前佔用情況
aliasportcheck="netstat-tunlp|grep"
#查看firewall防火牆開放埠列表(白名單)
aliasfirewallports="firewall-cmd--zone=public--list-ports"
#設置firewall防火牆的mysql3306埠互通
aliasfirewalladd="echo'firewall-cmd--zone=public--add-port=3306/tcp--permanent'"
#firewall防火牆重啟
aliasfirewallreload="firewall-cmd--reload"
#iptables防火牆添加指定埠命令
aliasiptablesadd="echo'/sbin/iptables-IINPUT-ptcp--dport8080-jACCEPT'"
#查看防火牆白名單(應該是重啟還在的)
aliasiptableports="more/etc/sysconfig/iptables"
#查看指定進程
#aliaspid="psaux|grep"
aliaspid="ps-ef|grep"
#查找根目錄/下的名字為xx的文件,支持通配符*
aliassearch="find/-name"
#查看Linux系統版本和位數
aliassysteminfo='cat/etc/redhat-release;getconfLONG_BIT;uname-a'
#顯示當前伺服器時間
aliastimenow='date+"%Y-%m-%d%H:%M:%S"'
#更新伺服器時間
#aliasupdatetime='ntpdate0.centos.pool.ntp.org'
#跳轉tomcat路徑
aliastomcatpwd="cd/disk1/app/tomcat8"
#啟動tomcat
aliastomcatstart="tomcatpwd&&./bin/startup.sh&&tail-f./logs/catalina.out"
#停止tomcat
aliastomcatstop="tomcatpwd&&./bin/shutdown.sh&&ps-ef|greptomcat"
#查看tomcat日誌
aliastomcatlog="tomcatpwd&&tail-200f./logs/catalina.out"
#批量啟動多個tomcat
aliastomcatstartall="/usr/local/tomcat8080/bin/startup.sh&&/usr/local/tomcat8081/bin/startup.sh&&/usr/local/tomcat8082/bin/startup.sh&&/usr/local/tomcat8083/bin/startup.sh&&/usr/local/tomcat8084/bin/startup.sh"
#批量關閉多個tomcat
aliastomcatstopall="/usr/local/tomcat8080/bin/shutdown.sh&&/usr/local/tomcat8081/bin/shutdown.sh&&/usr/local/tomcat8082/bin/shutdown.sh&&/usr/local/tomcat8083/bin/shutdown.sh&&/usr/local/tomcat8084/bin/shutdown.sh"
#redis查找指定key對應value值
aliasrediskeys='redis-cli-a"abc@123"keys'
#修改nginx默認配置
aliasnginxconf="vim/usr/local/nginx/conf/nginx.conf"
#以默認配置啟動nginx
aliasnginxstart="/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf"
#強制停止nginx伺服器,如果有未處理的數據,丟棄
aliasnginxstop="/usr/local/nginx/sbin/nginx-sstop"
#推薦:優雅的停止nginx伺服器,如果有未處理的數據,等待處理完成之後停止
aliasnginxquit="/usr/local/nginx/sbin/nginx-squit"
#重載nginx,用於修改配置後,直接刷新使配置生效
aliasnginxreload="/usr/local/nginx/sbin/nginx-sreload"
#檢查nginx的配置是否可用
aliasnginxcheck="/usr/local/nginx/sbin/nginx-t"
#虛擬機共享文件夾路徑
#aliasshare="/mnt/hgfs/ShareFolder/"
#Sourceglobaldefinitions
if[-f/etc/bashrc];then
./etc/bashrc
fi
5.粘貼後,按ESC退出編輯模式,然後按冒號+w+q+回車 保存
我那些alias裡面不懂的去網路吧,基本用過linux的差不多都接觸過或者一看就懂