[轉自LinuxSir.Org]Linux 文件和目錄管理之列出、刪除、複製、移動及改名

目錄

1.1 ls 的基礎語法和參數;
1.2 ls 的參數示例應用;

 

1.3 通配符在ls命令中的應用;
1.4 獲得ls 的幫助;

3.1 cp的語法和參數
3.2 示例說明cp應用;

 

4.1 mkdir 是目錄創建工具;

 

4.2 刪除空目錄工具 rmdir 和rm ;

0、關於路徑的理解;
1、列文件或目錄的信息工具 ls 和dir;

 

2、移動文件或目錄的命令 mv ;
3、文件或目錄的複製工具cp ;

4、 目錄創建工具mkdir和刪除空目錄工具rmdir;

5、創建一個空文件的工具:用 touch、echo、cat等工具;
6、刪除文件工具rm;
7、修改文件名工具 mv
8、關於本文;
9、後記;
10、參考文檔;
11、相關文檔;


++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++


0、關於路徑的理解;

請參考:

《關於Linux 文件系統中路徑的理解》


1、列文件或目錄的信息工具 ls或dir;

ls 命令可以用於顯示目錄的內容,也可以顯示文件的屬性,比如節點、文件種類、權限、擁有者、大小、創建時間等;在目前最新版本的Linux中dir和ls命令的用法是一樣的;有興趣的不仿嘗試一下;


1.1 ls 的基礎語法和參數;

語法格式:

 

#ls [參數]   [目錄或文件名]

 

參數:

 

-a 顯示所有文件,包含隱藏文件;包括“.“和“..“
-A 顯示所有文件,包含隱藏文件,不包括“.“和“..“目錄;
-B 不列出文件名以~結尾的文件;
-C 按列列出文件;
-d 僅可以查看目錄的屬性參數及信息;
-F 這個參數加上後,能給目錄添加上/,給可執行文件加上*,給符號鏈接加上@  等等,來標記文件名,目的是讓用戶方便查看;
-l 長格式輸出
-h 習慣人們可閱讀的方式來顯示文件或目錄的大小,比如K、M或G等;
-p 在目錄的後面附加/標記;
-r 逆序列出文件;
-t  按文件最後訪問(或修改)的時間排序,最新的排在最前面;
-U 按原始排序,
-L 遞歸顯示,也就是說,當我們列某個目錄的下的所有文件和目錄時,能把它的下級目錄的內容顯示出來。
--help  獲得幫助;

 

在這裏,位於[]之內的都是可選的。如果您只輸入ls ,就會列出用戶所處當前目錄的所有文件,用短格式輸出,但不會列出隱藏文件。

判斷用戶所處目錄的命令是pwd,也就是

 

[root@localhost ~]# pwd
/root

 


1.2 ls 的參數示例應用;


1.21 列出目錄下所有文件,包含或不包含隱藏文件,-a 參數及-l參數的運用;

 

#ls -la [目錄名]

 

如果不接目錄名,表示輸出當前用戶所處目錄內的所有文件,包括隱藏文件;

 

[root@localhost ~]# pwd
/root
[root@localhost ~]# ls -la

 

列出某一目錄下的的文件或目錄,但不包括隱藏文件,我們只用-l參數

 

#ls -l  目錄

 

比如:

[root@localhost ~]# ls  -l /root/
總計 13968
-rw-r--r-- 1 root root         0 04-19 14:09 123.txt
-rw------- 1 root root      1375 03-16 08:55 anaconda-ks.cfg
-rw-r--r-- 1 root root         2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root      5423 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root  14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root        33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users     4096 04-04 23:30 mkuml-2004.07.17
-rw-r--r-- 1 root root     68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root root      4096 04-19 10:53 mydir
-rw-r--r-- 1 root root     53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root         0 04-19 14:10 plinux.txt
drwxr-xr-x 2 root root      4096 03-17 04:25 Public
-rw-r--r-- 1 root root       613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root         0 03-26 18:39 upgrade.log.syslog
lrwxrwxrwx 1 root root         6 04-19 11:17 yourdir -> mydir/

 

說明:如果以長格式輸入,總共顯示出八段內容:

第一段文件種類及權限,也就是類似這樣的-rw-r--r-- ,我們在前面講到,如果在這段中,第一字符表示文件的類型,如果出現-,表示普通文件。如果是d開頭的就是目錄。在這個例子中,123.txt是普通文件,而mkuml-2004.07.17就是一個目錄。關於文件的種類,請參考 :
rw-r--r--是權限位,我們在以後的教程中會講到。
第二段 硬鏈接個數(文件系增加一個硬鏈接,數字會增加1,默認從1開始,1表示無硬鏈接文件,如果是一個目錄,它的默認值應該是2。目錄是不能做硬鏈接的)
如果我們不以長格式輸出的話,可以把參數省略;
第三段 文件或目錄所佔用的字節數,如果您想用K來表示,請用ls -lh /root
第四段 最後訪問日期
第五段 最後訪問時間
第六段 文件名

 

[root@localhost ~]# ls /root

 


1.22 僅查看目錄的屬性的-d參數的運用示例;

 

[root@localhost ~]# ls -ld  /etc  /boot  注:查看/etc和/boot目錄的信息;

drwxr-xr-x   4 root root  4096 04-11 16:22 /boot
drwxr-xr-x 108 root root 12288 04-20 12:36 /etc

 


1.23 查看文件或目錄的inode節點,-i參數的運用;

查看文件或目錄的節點,我們要用到i參數。如果節點相同,能確認他們是相同的文件,是通過通過ln 創建的硬鏈接文件;鏈接接有何用?如果您想把一個文件複製時保持原文件或目錄的節點、大小、權限以及訪問(或修改)時間都和原文件一致的文件。必須通過硬鏈接來實現,用cp命令是不可能實現的。

比如:

 

[root@localhost ~]# ls -li /root



[root@localhost ~]# ls -li kernel*
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
2408270 lrwxrwxrwx 1 root root       33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm

 

我們看一下kernel00.rpm 、kernel.rpm 和 kernel-2.6.15-1.2025_FC5.i686.rpm 是不是節點相同??他們的大小是不是一樣,他們的訪問日期是不是一樣?只是他們的文件名不一樣。文件名不一樣沒有關係,這能證明其中兩個文件是由另一個文件通過ln 創建而成。

您可以嘗試着用cp 把 kernel-2.6.15-1.2025_FC5.i686.rpm 複製爲kernel002.rpm ,看看能不能保持節點相同?

 

[root@localhost ~]# ls -li kernel*
2408272 -rw-r--r-- 1 root root 14087155 04-19 16:05 kernel002.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel00.rpm
2408270 lrwxrwxrwx 1 root root       33 04-19 14:56 kernel1.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm
2408323 -rw-r--r-- 3 root root 14087155 03-16 07:53 kernel.rpm

 

不是是kernel002.rpm 的節點和 kernel-2.6.15-1.2025_FC5.i686.rpm 不一樣了?


1.24 關於排序的參數的應用;

ls 顯示目錄的內容時,會將文件按a到z的字母順序顯示,優先級如下;

 

數字 
a-z 
A-Z

 

也就是說如果不加任何排序的參數,文件名第一個字母是數字的,將優先顯示;其次纔是A-Z,然後纔是a-z;下面是幾個排序的參數,大家練習一下就知道了;

 

在文件的大小排序上,我們要用到-S參數;
如果是逆序排序時,我們要用到-r參數;
按最後訪問的時候排序,要用到-t參數;
根據擴展名進行排序,要用到參數 -X ;

 

舉例

 

[root@localhost ~]# ls
123.txt          fonts.scale         kernel                           myinstall.log  upgrade.log
anaconda-ks.cfg  install.log.syslog  mkuml-2004.07.17-ananas.tar.bz2  plinux.txt     upgrade.log.syslog

 

 

[root@localhost ~]# ls -lS /root
[root@localhost ~]# ls -lS
總計 180
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root  5423 03-16 08:52 install.log.syslog
drwxr-xr-x 2 root root  4096 04-19 20:04 kernel
-rw------- 1 root root  1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root    21 04-19 15:06 123.txt
-rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root     0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root     0 03-26 18:39 upgrade.log.syslog

 

舉例:

 

[root@localhost ~]# ls -lr
總計 180
-rw-r--r-- 1 root root     0 03-26 18:39 upgrade.log.syslog
-rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root     0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root root  4096 04-19 20:04 kernel
-rw-r--r-- 1 root root  5423 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
-rw------- 1 root root  1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root    21 04-19 15:06 123.txt

 

 

[root@localhost ~]# ls -lt
總計 180
drwxr-xr-x 2 root root  4096 04-19 20:04 kernel
-rw-r--r-- 1 root root    21 04-19 15:06 123.txt
-rw------- 1 root root  1375 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root     0 04-19 14:10 plinux.txt
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
-rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
-rw-r--r-- 1 root root     0 03-26 18:39 upgrade.log.syslog
-rw-r--r-- 1 root root 53992 03-16 08:54 myinstall.log
-rw-r--r-- 1 root root  5423 03-16 08:52 install.log.syslog

 


1.25 遞歸顯示目錄的文件,-R參數的應用;

遞歸顯示目錄下的所有文件,如果該目錄下有子目錄,也會把子目錄的文件一併顯示出來。

比如

 

[root@localhost ~]# ls -lR /

 

注:也就是把Linux下/根目錄下的所有文件顯示出來,但不會顯示隱藏文件。自己試着輸入上面的命令就知道怎麼回事了。


1.26 關於ls 輸出內容在終端顯示顏色的參數 --color;

在一般的情況下,ls輸出內容是有顏色的,比如目錄是藍色,壓縮文件是紅字的顯示。如果沒有顏色,可以加上參數。當然也可以去掉顏色。

 

--color=never  表示輸出輸出沒有彩色
--color=auto  表示自動
--color=always 表示輸出內容有彩色

 

舉例:

 

[root@localhost ~]# ls -la --color=never
[root@localhost ~]# ls -la --color=any
[root@localhost ~]# ls -la --color=always

 

如果您的終端或控制檯輸出的內容沒有顏色,可以自己來定義。在當前用戶的家目錄下的.bashrc 中加入下面的一行;

 

alias ls="ls --color=always"

 


1.27 ls的-F參數的示例;

 

[root@localhost ~]# ls -F
crondw.sh*  kernel/  mkuml-2004.07.17-ananas.tar.bz2  openQreadme.txt@  sun.txt  upgrade.log  youdir/

[root@localhost ~]# ls -lF
總計 92
-rwxr-xr-x 1 root root     0 04-20 14:18 crondw.sh*
drwxr-xr-x 3 root root  4096 04-20 14:17 kernel/
-rw-r--r-- 1 root root 68012 04-04 20:28 mkuml-2004.07.17-ananas.tar.bz2
lrwxrwxrwx 1 root root     7 04-20 14:18 openQreadme.txt -> sun.txt
-rw-r--r-- 1 root root    11 04-20 14:17 sun.txt
-rw-r--r-- 1 root root   613 03-26 18:41 upgrade.log
drwxr-xr-x 6 root root  4096 04-20 14:17 youdir/

 


1.3 通配符在ls命令中的應用;

 

* 代表0個或多個字符
[]內部包括任何字符
? 任何單個字符

 

舉例:

比如我們顯示以k開頭的所有文件,在/root目錄中的;

 

[root@localhost ~]# ls /root/k*
kernel002.rpm  kernel00.rpm  kernel1.rpm  kernel-2.6.15-1.2025_FC5.i686.rpm  kernel.rpm

 

我們顯示以數字開頭的所有文件;

 

[root@localhost ~]# ls [0-9]*
123.txt  234.txt  2kexe.txt  6mns.doc

 

下面是一個?通配符的示例:

 

[root@localhost ~]# ls *.t?t
123.txt  234.txt  2kexe.txt  333.tot  plinux.txt

 


1.4 獲得ls 的幫助;

ls 的用法比較簡單,至於更詳細的參考,還是查man和help。遇到不會的,就查手冊,我也是這麼做的。

 

[root@localhost ~]# ls --help
[root@localhost ~]# man ls
[root@localhost ~]# info ls

 


2、移動文件或目錄的命令 mv ;

mv 命令是用來移動文件或目錄的;有以下幾種格式;

 

#mv file1 file2  注:把file1移動到file2,如果file2不存在,則創建file2文件名;
#mv file1 dir 注:把一個文件移動到一個事實存在的目錄;
#mv dir1 dir2   移動目錄dir1 到 dir2 ,如果dir2不存在,則創建它;
#mv file1 file2 file3 ... ...  dir   移動file1、file2、file3等多個文件到dir目錄中;
#mv dir1 dir2 ... ... dirn   注:移動目錄dir1和dir2等多個目錄到dirn目錄中

 

參數-i ,表示人機交互模式;提示警告信息;

舉例:

 

[root@localhost ~]# mv -i 123.txt  234.txt
mv:是否覆蓋“234.txt”? y 注:要在這裏輸入y,表示允許覆蓋234.txt文件;如果是n,請示不允許;

 

mv 也能和通配符結合一起使用,這樣能把相似特徵的文件移動到某處;

 

* 代表0個或多個字符
[]內部包括任何字符
? 任何單個字符

 


舉例:比如移動以數字開頭的文件或目錄到 root目錄下的tmp目錄中;

 

[root@localhost ~]# pwd
/root
[root@localhost ~]# mv [0-9]* tmp/
[root@localhost ~]# ls -lh tmp/
總計 4.0K
-rw-r--r-- 1 root root 21 04-19 15:06 234.txt
-rw-r--r-- 1 root root  0 04-19 22:23 2kexe.txt
-rw-r--r-- 1 root root  0 04-19 22:25 333.tot
-rw-r--r-- 1 root root  0 04-19 22:23 6mns.doc

 


3、文件或目錄的複製工具cp ;


3.1 cp 的語法和參數

 

#cp  [參數選項]   源文件或目錄      目標文件或目錄

 

注:參數是可選的,常用參數比如 -r,-R,-p,-i ;

參數說明(部份)

-a 等同於-dpR參數一起使用;在複製過程中儘可能保留源文件或目錄的屬性;
-b 給被覆蓋的文件做備份。比如我們把file1 複製到file2時,如果file2存在,我們把file2覆蓋掉,用這個參數就能同時生成一個file2~的文件,注意文件名後有~結尾
-d 不間接引用符號鏈接,保持源文件和目標文件之間的硬鏈接關係;
-f 刪除已存在的目標文件;
-i 覆蓋已存在的目標文件之前給出警告提示,這是人機交互的選項;
-l 建立文件硬鏈接,而不是複製;
-p 保存源文件或目錄的最後修改時間和模式,比如要保持目標目錄或文件的屬主、組、權限和最後訪問(或修改)時間;
-R 複製目錄時,包括淅目錄下所有的子目錄和文件;
-s 建立源文件的符號鏈接,而不是複製源文件。源文件名必須用絕對路徑;
-r 複製目錄時,包括淅目錄下所有的子目錄和文件;-r選項不同於-R之處在於 嘗試打開目的地文件前先刪除已存在的目的地文件
-i 人機交互模式,顯法覆蓋已存在的文件或目錄的警告信息;
-v 在複製之前,輸出每個文件的名字;
--help 查看幫助 ;


3.2 示例說明cp應用;


3.21 參數-i的示例;

 

[root@localhost ~]# ls
anaconda-ks.cfg  install.log.syslog  Kernel.rpm                       mydir       Plist  upgrade.log         youdir
fonts.scale      kernel              mkuml-2004.07.17-ananas.tar.bz2  plinux.txt  sun    upgrade.log.syslog
[root@localhost ~]# pwd
/root

[root@localhost ~]# cp  -i Kernel.rpm Plist
cp:是否覆蓋“Plist”? y

 

注:人機交互在數-i的運用;如果源文件複製到目標文件,如果目標文件存在,則提示警告;


3.22 參數-a的示例及說明;

把源目錄複製到另外的一個目標,相當於克隆了一個目錄,源目錄和目標目錄在用戶組、權限及修改或訪問時間保持一致;

 

[root@localhost ~]# cp -a mydir youdir

 

注:複製目錄mydir 到youdir ,如果yourdir目錄不存在,則創建。並且把mydir中所有的文件下級子目錄都複製到 yourdir目錄中。也就是說mydir目錄的文件和youdir是一樣的。-a 參數等同於-dpR,並且源目錄和目標目錄的屬性(用戶組、權限、最後訪問及修改時間)都一致;


3.23 參數-b的示例應用;

把源文件複製爲目標文件;並且嘗試-b參數的運用;

 

[root@localhost ~]# cp fonts.scale fonts.dir  把一個文件複製爲另一個文件;

[root@localhost ~]# cp -bi fonts.scale fonts.dir

cp:是否覆蓋“fonts.dir”? y  注:因爲用了-i 參數,如果目標文件存在,則報警提示;

[root@localhost ~]# ls -lh fonts.*
-rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir
-rw-r--r-- 1 root root 2 04-20 10:24 fonts.dir~  注:-b參數運用的效果就是生成已存在目標文件的覆蓋之前備份。
-rw-r--r-- 1 root root 2 03-27 02:00 fonts.scale

 


3.24 把多個文件複製到目錄目錄中示例;

比如我們把位於用戶當前目錄下的fonts.dir、Kernel.rpm和Plist文件,複製到當前用戶所處的目錄下的sun目錄中;

 

[root@localhost ~]# pwd  注:判斷用戶所處的位置,也就是所處的目錄;
/root

[root@localhost ~]# mv fonts.dir Kernel.rpm  Plist  sun/
[root@localhost ~]# ls sun/
fonts.dir  Kernel.rpm  Plist

 

注:如果您想把多個目錄或文件複製到目標目錄時,您得加參數 -R


3.25 複製目錄時-R參數的應用;

複製一個目錄到另一個目錄時,我們要用到 -r或-R 或-a , 如果目標目錄不存在,則創建它,如果目標目錄存在,則複製源目錄到目標目錄之下;看看-a和-R或-r有什麼不同?嘗試看看;

比如我們在用戶當前操作的目錄中,有mydir目錄,我們想把mydir複製爲medir(在複製之前medir是不存在的)。

 

[root@localhost ~]# cp -R mydir medir 注:如果medir目錄不存在,則創建medir目錄,並且medir目錄中的內容和mydir中的一樣;

 

如果您把-R參數換成-a參數,會有什麼不同?看看前面的例子所說的;


4、 目錄創建工具mkdir和刪除空目錄工具rmdir;


4.1 mkdir 是目錄創建工具;


4.11 mkdir語法格式及參數;

語法格式

 

#mkdir [參數選項]  目錄

 

參數常用的如下:

-m 在創建目錄時要授其權限,要和chmod的授權格式;
-p 如果中間目錄不存在,則創建它


4.12 參數 -p 的應用示例

我們要創建一個目錄linuxsir,並且linuxsir目錄下包含子目錄sirdoc,sirdoc目錄下還有 redhat目錄;

 

[root@localhost ~]# mkdir -p  linuxsir/sirdoc/redhat

 

舉例: -m 參數的應用示例;

我們以不同的權限來創建目錄,然後查看我們所創建目錄的屬性;這要涉及到chown 來改變目錄的權限的格式。我們會在以後講到chown改變目錄或文件的權限。在這裏不同的是,在目錄創建之時就給其授權了;

 

[root@localhost ~]# mkdir -m  644 sundir
[root@localhost ~]# mkdir -m 755 moondir
[root@localhost ~]# mkdir -m 000 beinandir
[root@localhost ~]# ls -ld sundir moondir beinandir
d--------- 2 root root 4096 04-20 11:01 beinandir
drwxr-xr-x 2 root root 4096 04-20 11:01 moondir
drw-r--r-- 2 root root 4096 04-20 11:00 sundir

 


4.2 刪除空目錄工具 rmdir 和rm ;

rmdir 是用來刪除空目錄用的,如果目錄中有文件或子目錄,必須先刪除文件或子目錄,其語法格式如下:

 

#rmdir [參數]  目錄

 


rmdir 參數常用的有:

-p 刪除目錄時是一級一級的時行的,值得注意的是,首先從最裏面的目錄開始。下面是一個例子;

 

[root@localhost ~]# mkdir -p  linuxsir/sirdoc/redhat/ 

注:首先在當前目錄下創建linuxsir目錄,他的子目錄是sirdoc,sirdoc內又有一個子目錄redhat

[root@localhost ~]# rmdir -p linuxsir/sirdoc/redhat/  注:刪除linuxsir目錄,要用到參數-p
[root@localhost ~]# ls linuxsir  注:檢查一下是不是還有這個目錄?
ls: linuxsir: 沒有那個文件或目錄

 

rmdir 所刪除的目錄,每級目錄中都是空的,沒有其它的文件。如果任何一級的目錄有文件,也不能刪除。這時您要用到rm -rf 命令強制刪除。不過用rm -rf 刪除時有點不安全,還是用rf -ri 比較好一點,因爲在刪除的時候,會有警告提示。這對於安全操作來說是很重要的;

 

[root@localhost ~]# ls -lh sun/  注:這是sun目錄,裏面有內容;
總計 28K
-rw------- 1 root root 1.4K 04-19 15:04 anaconda-ks.cfg
-rw-r--r-- 1 root root    2 04-20 10:24 fonts.dir
-rw-r--r-- 1 root root    2 03-27 02:00 fonts.scale
-rw-r--r-- 1 root root 5.3K 03-16 08:52 install.log.syslog
-rw-r--r-- 1 root root    0 04-19 20:44 Kernel.rpm
-rw-r--r-- 1 root root    0 04-20 10:20 Plist
[root@localhost ~]# rmdir sun/  注:我們嘗試用rmdir來刪除,
rmdir: sun/: 目錄非空  

[root@localhost ~]# rm -rf sun/  注:強制用rm -rf 來刪除;

[root@localhost ~]# ls sun    注:檢查是否刪除,刪除成功;
ls: sun: 沒有那個文件或目錄

 


5、創建一個空文件的工具:用 touch、echo、cat等工具;

有時我們爲了方便,可能在控制檯或終端下創建一個不存在的空文件,然後我們再用編輯器來編輯它;創建空文件有時還有點用。說說也無妨。我們在這裏用touch、ech0及cat 工具。其實這些工具,創建文件只是他們的一個小小的功能,我們以後再介紹這些工具,先說他們創建文件的功能。

注意:創建這些文件,在我們操作創建文件之前,這些文件在用戶當前操作目錄下是不存在的,我們在這裏只是創建一個新的文件名,並且它裏面沒有任何空容的;

 

[root@localhost ~]# ls 123456.txt 654321.txt 98765.txt
ls: 123456.txt: 沒有那個文件或目錄
ls: 654321.txt: 沒有那個文件或目錄
ls: 98765.txt: 沒有那個文件或目錄

 

 

[root@localhost ~]# echo > 123456.txt  注:用ech0 來創建,在創建之前在此操作目錄下不存不123456.txt文件;
[root@localhost ~]# ls 123456.txt     注:查看一下看有沒有生成?
123456.txt

 

 

[root@localhost ~]# touch 654321.txt  注:用 touch 來創建,在創建之前在此操作目錄下不存在654321.txt文件;
[root@localhost ~]# ls 654321.txt  注:查看一下看有沒有生成?
654321.txt

 

 

[root@localhost ~]# cat > 98765.txt  注:用ech0 來創建,在創建之前在此操作目錄下不存在98765.txt 文件;然後按ctrl+c組合鍵退出;

[root@localhost ~]# ls 98765.txt   注:查看一下看有沒有生成?
98765.txt

 


6、刪除文件工具rm;

rm 是用來刪除一個或多個文件的工具,並且能用於刪除非空目錄。我們前面提到了可以加參數-rf 就可以強制刪除一個非空目錄。

rm的語法格式;

 

#rm [參數選項] file1 file2 ... ...
#rm  [參數選項]  dir1 dir2 dir3 ... ...

 

rm 常用參數:

 

-f  不顯示警告或提示信息就刪除,用的時候需要小心;
-i  刪除文件時,顯示警告信息,要多用,這樣比較安全;根據提示,輸入y就表示刪除,輸入n,請示不刪除;
-r或-R  表示可以刪除整個目錄(包括子目錄及所有文件),要小心用;

 

 

[root@localhost ~]# rm -i 123.sh  注:這是刪除一個文件,用-i參數的示例,有警告提示;

rm:是否刪除一般空文件“123.sh”? y

 

比如我們想刪除mydir目錄及所有下級目錄和文件,要有提示的警告信息,可以用-r參數和-i參數的組合;如果您想終止rm命令,請按ctrl+c組合健退出rm;

 

[root@localhost ~]# rm -ri mydir/

rm:是否進入目錄“mydir/”? y
rm:是否進入目錄“mydir//youdir”? y
rm:是否刪除一般文件“mydir//youdir/enteruml.sh”?

 

如果您想沒有任何警告信息的刪除mydir目錄下的所有文件及子目錄,可以用-r和-f參數的組合;

 

[root@localhost ~]# rm -rf mydir

 


7、修改文件名工具 mv

mv 可以移動一個文件(或目錄)到另一個文件(或目錄),如果文件(或目錄)不存在,則創建它。其實mv 這個過程也可以理解爲改名過程,所以說mv工具能修改文件名和目錄名。

 

#mv 原文件名或目錄名  新文件或目錄名

 

注意:新文件名或目錄名應該不能與現有文件名(或目錄名)同名。

舉例:

 

[root@localhost ~]# ls
crondw.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

[root@localhost ~]# mv crondw.sh 123.sh  注:移動crondw.sh 到123.sh ,其實就是把文件名改爲了123.sh

[root@localhost ~]# ls
123.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

 

再看一例mv 修改目錄的。當然mv是把文件(或目錄)從一個地方移到另一個地方。如果另一地方沒有和源文件(或目錄)同名的,就創建。這也相當於改名;

 

[root@localhost ~]# ls
123.sh  kernel  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

[root@localhost ~]# mv kernel/ kernelBak

[root@localhost ~]# ls
123.sh  kernelBak  mkuml-2004.07.17-ananas.tar.bz2  mydir  openQreadme.txt  sun.txt  upgrade.log  youdir

 


8、關於本文;

本文是爲新手上路而寫的,也是基礎文檔之一,如果您認爲有用,那就送給您了。呵~~~~~~請各路大俠多多指正吧,謝謝~
今天值得高興的事是我終於能從文件系統寫到文件方面的內容了,也學到了不少東西,想來想去有點不容易~~~接着加油;


9、後記;

本文是文件管理一部份,包括了文件(或目錄)的查看工具ls、複製cp、移動mv;目錄的創建mkdir,目錄的刪除rm或rmdir;還有創建空文件的幾個工具;mv的改名用途;文件的刪除rm;

說是文件和目錄的管理,沒有寫路徑方面的知識,好象是少點東西。本來是想先寫路徑和目錄方面的內容了。後來一想一篇容不下,先把看上去很亂的東西寫一寫。然後再寫路徑的內容。


10、參考文檔;

相當工具的man或help;


11、相關文檔;

《關於Linux 文件系統中路徑的理解》
《Linux 文件種類和文件類型簡述》
《簡述Linux 文件系統的目錄結構》

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