天天看點

Linux作業系統之rm指令詳解

前言

1、rm 指令是remove 的縮寫,Linux中 rm 指令的功能為删除一個目錄中的一個或多個檔案或目錄,它也可以将某個目錄及其下的所有檔案及子目錄均删除。對于連結檔案,隻是删除了連結,原有檔案均保持不變。

2、rm是一個危險的指令,使用的時候要特别當心,在執行rm之前最好先确認一下在哪個目錄,到底要删除什麼東西。

文法

rm      

參數如下

-d或--directory     直接把欲删除的目錄的硬連接配接資料删成0,删除該目錄。

-f或--force       強制删除檔案或目錄,忽略不存在的檔案,不提示确認。

-i或--interactive      删除既有檔案或目錄之前先詢問使用者。

-I                   在删除超過三個檔案或者遞歸删除前要求确認。此選項比-i 提示内容更少,但同樣可以阻止大多數錯誤發生。

-r或-R或--recursive  遞歸删除,将指定目錄下的所有檔案及子目錄一并删除。

-v或--verbose      顯示指令執行過程。

--help 線上幫助   檢視該指令功能和可帶參數等。

常用範例

例一:删除檔案系統會先詢問是否删除

指令:rm 檔案名

輸入rm test.txt指令後,系統會詢問是否删除,輸入y後就會删除檔案,不想删除則輸入n。

[root@localhost games]# ll
總用量 0
-rw-r--r--. 1 root root 0 5月  13 11:19 test.txt

[root@localhost games]# rm test.txt 
rm:是否删除普通空檔案 'test.txt'?y

[root@localhost games]# ll
總用量 0      

例二:強行删除檔案系統不再提示

指令:rm -f 檔案名

[root@localhost games]# ll
總用量 0
-rw-r--r--. 1 root root 0 5月  13 11:23 test1.txt

[root@localhost games]# rm -f test1.txt 

[root@localhost games]# ll
總用量 0      

例三:删除多個檔案并在删除前逐一詢問确認

指令: rm -i *.txt

[root@localhost games]# ll
總用量 0
-rw-r--r--. 1 root root 0 5月  13 11:25 test1.txt
-rw-r--r--. 1 root root 0 5月  13 11:25 test2.txt

[root@localhost games]# rm -i *.txt
rm:是否删除普通空檔案 'test1.txt'?y
rm:是否删除普通空檔案 'test2.txt'?y

[root@localhost games]# ll
總用量 0      

例四:将 test1子目錄及子目錄中所有檔案都删除

指令: rm -r test1

執行 rm -r指令如果該目錄裡面有檔案,會首先進入該目錄,把檔案删除後再删除該目錄。(先删除目錄中的檔案或子目錄再删除該目錄)

執行rm -rf 指令時則不會一一确認是否删除。

[root@localhost test]# ll
總用量 0
drwxr-xr-x. 2 root root 23 5月  13 14:06 test1
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2

[root@localhost test]# rm -r test1
rm:是否進入目錄'test1'? y
rm:是否删除普通空檔案 'test1/test1.txt'?y
rm:是否删除目錄 'test1'?y

[root@localhost test]# ll
總用量 0
drwxr-xr-x. 2 root root 6 5月  13 14:06      

例五:删除以 t 開頭的檔案(不能删除目錄)

指令: rm -- t

[root@localhost test]# ll t*
總用量 0 
-rw-r--r--. 1 root root 0 5月  13 14:15 t
-rw-r--r--. 1 root root 0 5月  13 14:16 t1
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2


[root@localhost test]# rm -- t* 
rm:是否删除普通空檔案 't'?y 
rm:是否删除普通空檔案 't1'?y 
rm: 無法删除'test2': 是一個目錄      

 指令:rm ./t

[root@localhost test]# ll t*
總用量 0
-rw-r--r--. 1 root root 0 5月  13 14:20 t2
-rw-r--r--. 1 root root 0 5月  13 14:20 t3
drwxr-xr-x. 2 root root  6 5月  13 14:06 test2

[root@localhost test]# rm ./t* 
rm:是否删除普通空檔案 './t2'?y 
rm:是否删除普通空檔案 './t3'?y 
rm: 無法删除'./test2': 是一個目錄 

[root@localhost test]# ll t* 總用量 0
drwxr-xr-x. 2 root root  6 5月  13 14:06      

例六:删除目前目錄下除隐含檔案外的所有檔案和子目錄(提醒是否删除,二次确定)

rm -r *

例六:删除某一指定目錄下除隐含檔案外的所有檔案和子目錄(強制删除不提醒)

rm -rf 目錄/*

繼續閱讀