Linux:文件、目錄相關(guān)指令-cp、mv、rm、mkdir、rmdir指令
0、常用
1)cp
cp A /tmp/A cp -i A /tmp/A #同名覆蓋,詢問(wèn) cp -f A /tmp/A #同名覆蓋,不詢問(wèn)(強(qiáng)制) cp -r A /tmp/A #目錄復(fù)制,復(fù)制后目錄的歸屬人變?yōu)楫?dāng)前用戶 cp -a A /tmp/A #目錄復(fù)制,保留原歸屬人
cp A B C /tmp #多文件復(fù)制,目的地必須為目錄
2)rm
rm -i A #刪除前詢問(wèn) rm -f A #刪除前不詢問(wèn) rm -r A #遞歸刪除目錄
rm -f 202507* #刪除以202507開頭的文件
3)mv
mv A /tmp #簡(jiǎn)單移動(dòng) mv A B C /tmp #一次移動(dòng)多個(gè) mv -i A /tmp #同名時(shí)詢問(wèn) mv -f A /tmp #同名時(shí)強(qiáng)制覆蓋
4)mkdir
mkdir -m 711 /data #設(shè)定權(quán)限 mkdir -p /tmp/dir1/dir2 #遞歸創(chuàng)建dir1、dir2
1、文件
1)cp:復(fù)制
用法:
-
cp [-adfilprsu] [--preserver=all] 源文件路徑 目標(biāo)文件路徑
-
cp [options] 源1 源2 ... 目標(biāo)文檔路徑
選項(xiàng)
選項(xiàng) |
說(shuō)明 |
| a | 相當(dāng)于-dr --preserve=all,所有特性(包括所有者)完全復(fù)制 |
| d | 若源文件為鏈接文件,那么復(fù)制的是鏈接文件屬性而非用文件本身的屬性 |
| f | 強(qiáng)制,若目標(biāo)文件已存在,則移除后再嘗試一次 |
| i | 若目標(biāo)文件已存在,則會(huì)在覆蓋時(shí)先詢問(wèn) |
| l | 建立硬式連結(jié),而非復(fù)制文件本身(此時(shí)會(huì)采用執(zhí)行者的特性) |
| p | 連同文件屬性一起復(fù)制,而不使用新屬性 |
| r | 遞歸復(fù)制,用于目錄的復(fù)制 |
| s | 復(fù)制成符號(hào)鏈接文件,即快捷方式 |
| u | 目標(biāo)文件不存在或比源文件舊時(shí)才復(fù)制 |
| --preserve=all | 除了-p的權(quán)限相關(guān)參數(shù)外,還加入SELinux的屬性 |
說(shuō)明
- 如果有多個(gè)源文件,那么目標(biāo)一定是目錄;
- 不同身份的人執(zhí)行這個(gè)指令會(huì)有不同的結(jié)果產(chǎn)生;
- cp別人的文件要先有r權(quán)限;
- 默認(rèn)情況下,cp后的文件所有者為指令操作者本身;
- 復(fù)制目錄必須加選項(xiàng)-r(使用新特性,可能改變權(quán)限)或-a(保持原特性);
- 可以通過(guò)修改目標(biāo)文件名的方式實(shí)現(xiàn)復(fù)制+改名;
- 如果執(zhí)行人本身沒(méi)有修改文件的擁有者與群組的權(quán)限,那么即使加上-a,他也無(wú)法為復(fù)制后的文件修改擁有者和群組(第三和第四部分)
例子
①簡(jiǎn)單復(fù)制和覆蓋復(fù)制
[root@study ~]# cp ~/.bashrc /tmp/bashrc
[root@study ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n <==n 不覆蓋,y 為覆蓋
復(fù)制并改名(直接修改目標(biāo)文件名即可)
cp -a wtmp dmtsai_wtmp
②復(fù)制前后的屬性、特性變化
[root@study ~]# cd /tmp
[root@study tmp]# cp /var/log/wtmp . <==想要復(fù)制到當(dāng)前目錄,最后的 . 不要忘
[root@study tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r--. 1 root utmp 28416 Jun 11 18:56 /var/log/wtmp
-rw-r--r--. 1 root root 28416 Jun 11 19:01 wtmp
如果要保證文件特性不變,應(yīng)該在復(fù)制時(shí)加入選項(xiàng)-a或-p,此時(shí)看起來(lái)像是源文件的鏡像
[root@study tmp]# cp -a /var/log/wtmp wtmp_2
[root@study tmp]# ls -l /var/log/wtmp wtmp_2
-rw-rw-r--. 1 root utmp 28416 Jun 11 18:56 /var/log/wtmp
-rw-rw-r--. 1 root utmp 28416 Jun 11 18:56 wtmp_2
③目錄復(fù)制
需要加選項(xiàng)-r(會(huì)改變特性)、-a或-p(保證特性不變)
[root@study tmp]# cp /etc/ /tmp
cp: omitting directory `/etc' <== 如果是目錄則不能直接復(fù)制,要加上 -r 的選項(xiàng)
[root@study tmp]# cp -r /etc/ /tmp
[root@study tmp]# cp -a /etc/ /tmp
④連結(jié)檔
硬鏈接、實(shí)體鏈接:-l,會(huì)使文件屬性第二項(xiàng)[連接數(shù)]增加
符號(hào)鏈接、快捷方式:-s
[root@study tmp]# cp -s bashrc bashrc_slink
[root@study tmp]# cp -l bashrc bashrc_hlink
[root@study tmp]# ls -l bashrc*
-rw-r--r--. 2 root root 176 Jun 11 19:01 bashrc <==與源文件不太一樣了!
-rw-r--r--. 2 root root 176 Jun 11 19:01 bashrc_hlink
lrwxrwxrwx. 1 root root 6 Jun 11 19:06 bashrc_slink -> bashrc
2)rm:刪除文件或目錄
用法:rm [-fir] 路徑/正則路徑
選項(xiàng)
選項(xiàng) |
說(shuō)明 |
| f | force,忽略不存在的文件,不出現(xiàn)警告訊息 |
| i | 互動(dòng)模式,刪除前詢問(wèn) |
| r | 遞歸刪除,用于目錄刪除(危險(xiǎn)選項(xiàng)) |
說(shuō)明
- 使用正則路徑,會(huì)刪除所有匹配的路徑
例子
①正則刪除
[root@study tmp]# rm -i bashrc*
# 注意那個(gè)星號(hào),代表的是 0 到無(wú)窮多個(gè)任意字符喔!很好用的東西!
②刪除目錄,與rmdir的區(qū)別
[root@study tmp]# rmdir /tmp/etc
rmdir: failed to remove '/tmp/etc': Directory not empty <== 刪不掉啊!因?yàn)檫@不是空的目錄!
[root@study tmp]# rm -r /tmp/etc
3)mv:移動(dòng)(重命名)文件
用法
-
mv [-fiu] 源路徑 目標(biāo)路徑
-
mv [options] 源1 源2 源3 ... 目標(biāo)路徑
選項(xiàng)
選項(xiàng) |
說(shuō)明 |
| f | force,如果目標(biāo)文件存在,則直接覆蓋 |
| i | 若目標(biāo)文件存在,會(huì)詢問(wèn)是否覆蓋 |
| u | 若目標(biāo)文件存在,且源文件較新,才會(huì)覆蓋 |
說(shuō)明
- 如果有多個(gè)來(lái)源文件或目錄,則最后一個(gè)目標(biāo)文件一定是目錄
例子
①常規(guī)復(fù)制、移動(dòng)
例一:復(fù)制一文件,建立一目錄,將文件移動(dòng)到目錄中
[root@study ~]# cd /tmp
[root@study tmp]# cp ~/.bashrc bashrc
[root@study tmp]# mkdir mvtest
[root@study tmp]# mv bashrc mvtest
②更名
范例二:將剛剛的目錄名稱更名為 mvtest2
[root@study tmp]# mv mvtest mvtest2
還有個(gè)rename指令,可以同時(shí)對(duì)多個(gè)文檔更名
③一次移動(dòng)多個(gè)文件
[root@study tmp]# mv bashrc1 bashrc2 mvtest2
4)touch:①創(chuàng)建文件;②修改文件時(shí)間
用法:touch [-acdmt] 文件
選項(xiàng)
選項(xiàng) |
說(shuō)明 |
| a | 修改atime |
| c | 修改ctime |
| d |
修改a、m時(shí)間 后接指定的時(shí)間而不用當(dāng)前時(shí)間,也可以用--date="日期/時(shí)間" |
| m | 修改mtime |
| t |
修改a、m時(shí)間 后接指定時(shí)間而不用當(dāng)前時(shí)間,格式[YYYYMMDDhhmm] |
例子
①常規(guī),新建一個(gè)空文件并觀察時(shí)間
[dmtsai@study tmp]# touch testtouch [dmtsai@study tmp]# ls -l testtouch -rw-rw-r--. 1 dmtsai dmtsai 0 Jun 16 00:45 testtouch
②復(fù)制,并觀察前后文件的時(shí)間
[dmtsai@study tmp]# touch -d "2 days ago" bashrc [dmtsai@study tmp]# date; ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc Tue Jun 16 00:51:52 CST 2015 -rw-r--r--. 1 dmtsai dmtsai 231 Jun 14 00:51 bashrc -rw-r--r--. 1 dmtsai dmtsai 231 Jun 14 00:51 bashrc -rw-r--r--. 1 dmtsai dmtsai 231 Jun 16 00:51 bashrc
變化的是atime和mtime,而ctime沒(méi)變
2、目錄
1)新建:mkdir
用法:mkdir [-mp] 目錄名
參數(shù)
- -m:指定該目錄的權(quán)限(不然會(huì)用默認(rèn)權(quán)限);
- -p:遞歸建立該目錄(包括它所在的上層目錄)。
例子
- -m指定目錄權(quán)限
mkdir -m 711 test1
2)rmdir:刪除(空)目錄(可以用rm -r起到相同的作用)
用法:rmdir [-p] 目錄名
參數(shù)
- -p:遞歸刪除這個(gè)目錄(會(huì)刪除所有上層空的目錄)

浙公網(wǎng)安備 33010602011771號(hào)