每天一個linux命令(5):rm 命令

昨天學習了創建文件和目錄的命令mkdir ,今天學習一下linux中刪除文件和目錄的命令: rm命令。rm是常用的命令,該命令的功能爲刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於鏈接文件,只是刪除了鏈接,原有文件均保持不變。

rm是一個危險的命令,使用的時候要特別當心,尤其對於新手,否則整個系統就會毀在這個命令(比如在/(根目錄)下執行rm * -rf)。所以,我們在執行rm之前最好先確認一下在哪個目錄,到底要刪除什麼東西,操作時保持高度清醒的頭腦。

1.命令格式:

rm [選項] 文件… 

2.命令功能:

刪除一個目錄中的一個或多個文件或目錄,如果沒有使用- r選項,則rm不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。

3.命令參數:

    -f, --force    忽略不存在的文件,從不給出提示。

    -i, --interactive 進行交互式刪除

    -r, -R, --recursive   指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。

    -v, --verbose    詳細顯示進行的步驟

       --help     顯示此幫助信息並退出

       --version  輸出版本信息並退出

4.命令實例:

實例一:刪除文件file,系統會先詢問是否刪除。 

命令:

rm 文件名

輸出:

[root@localhost test1]# ll
total 0
-rw-r--r--. 1 root root  0 Nov 23 11:03 log.log
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf
[root@localhost test1]# rm log.log
rm: remove regular empty file ‘log.log’? y
[root@localhost test1]# ll
total 0
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf

說明:

輸入rm log.log命令後,系統會詢問是否刪除,輸入y後就會刪除文件,不想刪除則數據n。

實例二:強行刪除file,系統不再提示。 

命令:

rm -f log1.log

輸出:

[root@localhost test1]# ll
total 0
-rw-r--r--. 1 root root  0 Nov 23 11:05 log1.log
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf
[root@localhost test1]# rm -f log1.log
[root@localhost test1]# ll
total 0
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf

實例三:刪除任何.log文件;刪除前逐一詢問確認 

命令:

rm -i *.log

輸出:

[root@localhost test1]# ll
total 0
-rw-r--r--. 1 root root  0 Nov 23 11:07 log1.log
-rw-r--r--. 1 root root  0 Nov 23 11:07 log2.log
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf
[root@localhost test1]# rm -i *.log
rm: remove regular empty file ‘log1.log’? y
rm: remove regular empty file ‘log2.log’? y
[root@localhost test1]# ll
total 0
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf

實例四:將 test1子目錄及子目錄中所有檔案刪除

命令:

rm -f test1

輸出:

[root@localhost test1]# ll
total 0
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf
drwxr-xr-x. 2 root root 21 Nov 23 11:12 test1
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test2
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test3
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test4
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test5
[root@localhost test1]# rm -f test1
rm: cannot remove ‘test1’: Is a directory
[root@localhost test1]# rm -r test1
rm: descend into directory ‘test1’? y
rm: remove regular empty file ‘test1/log3.log’? y
rm: remove directory ‘test1’? y

實例五:rm -rf test2命令會將 test2 子目錄及子目錄中所有檔案刪除,並且不用一一確認

命令:

rm -rf test2

輸出:

[root@localhost test1]# rm -rf test2
[root@localhost test1]# ll
total 0
drwxr-xr-x. 7 root root 61 Nov 22 16:40 scf
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test3
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test4
drwxr-xr-x. 2 root root  6 Nov 23 11:10 test5

實例六:刪除以 -f 開頭的文件

命令:

rm -- -f

輸出:

[root@localhost test1]# touch -- -f
[root@localhost test1]# ls
-f  scf
[root@localhost test1]# ls -- -f
-f
[root@localhost test1]# rm -- -f
rm: remove regular empty file ‘-f’? y
[root@localhost test1]# ls -- -f
ls: cannot access -f: No such file or directory

也可以使用下面的操作步驟:

[root@localhost test1]# touch ./-f
[root@localhost test1]# ls 
-f  scf
[root@localhost test1]# rm ./-f
rm: remove regular empty file ‘./-f’? y

實例七:自定義回收站功能

命令:

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }

輸出:

[root@localhost ~]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok";}
[root@localhost ~]# alias rm='myrm'
[root@localhost ~]# touch 1.log 2.log 3.log
[root@localhost ~]# ll
total 4
-rw-r--r--. 1 root root    0 Nov 23 11:21 1.log
-rw-r--r--. 1 root root    0 Nov 23 11:21 2.log
-rw-r--r--. 1 root root    0 Nov 23 11:21 3.log
-rw-------. 1 root root 1364 Sep  6 11:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root   16 Nov 23 11:18 test1
[root@localhost ~]# rm [123].log
moved to /tmp/20161123112222 ok
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1364 Sep  6 11:31 anaconda-ks.cfg
drwxr-xr-x. 3 root root   16 Nov 23 11:18 test1
[root@localhost ~]# ls /tmp/20161123112222/
1.log  2.log  3.log
[root@localhost ~]#

說明

上面的操作過程模擬了回收站的效果,即刪除文件的時候只是把文件放到一個臨時目錄中,這樣在需要的時候還可以恢復過來。


參考資料:

         http://codingstandards.iteye.com/blog/983531 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章