第三章Linux文件管理和IO重定向(1)-文件操作命令

文件操作命令

1、列出文件內容-ls

ls [-alrtAFR] [name...]

選項:

  • -a 顯示所有文件及目錄 (. 開頭的隱藏文件也會列出)
  • -l 除文件名稱外,亦將文件型態、權限、擁有者、文件大小等資訊詳細列出
  • -r 將文件以相反次序顯示(原定依英文字母次序)
  • -t 將文件mtime之先後次序列出
  • -A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
  • -R 若目錄下有文件,則以下之文件亦皆依序列出
  • -u配合-t選項,顯示並按atime排序

顯示 / 下面文件,並顯示額外信息

[root@localhost ~]# ll /
total 20
lrwxrwxrwx.   1 root root    7 May 10  2019 bin -> usr/bin
dr-xr-xr-x.   6 root root 4096 Dec  6 10:53 boot
drwxr-xr-x.  19 root root 3200 Dec 22 08:54 dev
drwxr-xr-x.  78 root root 8192 Dec 19 07:37 etc
drwxr-xr-x.   4 root root   48 Dec 14 11:55 home
lrwxrwxrwx.   1 root root    7 May 10  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 May 10  2019 lib64 -> usr/lib64

將 /bin 目錄以下所有目錄及文件詳細資料列出 :

[root@localhost ~]# ls -lR /bin
lrwxrwxrwx. 1 root root 7 May 10  2019 /bin -> usr/bin

列出目前工作目錄下所有名稱是 s 開頭的文件,越新的排越後面

ls -ltr s*

2、查看文件狀態stat

文件的數據分兩種:

  • 一種元數據,既屬性數據:metadata ()

  • 一種就是數據本身:data

文件時間戳

atime:訪問時間(access time),指的是文件最後被讀取的時間,可以使用touch命令更改爲當前時間;

ctime:變更時間(change time),指的是文件本身最後被變更的時間,變更動作可以使chmod、chgrp、mv等等;

mtime:修改時間(modify time),指的是文件內容最後被修改的時間,修改動作可以使echo重定向、vi等等;

[root@localhost ~]# stat bb.txt
  File: bb.txt
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 802h/2050d      Inode: 19461       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-12-23 11:16:10.167490395 -0500
Modify: 2020-12-23 11:16:10.167490395 -0500
Change: 2020-12-23 11:16:10.167490395 -0500
 Birth: -

文件的元數據包含了文件的大小、塊數量、IO塊大小、文件類型、Inode號、硬鏈接數、訪問權限、屬主、屬組、SELinux安全上下文和時間戳信息等內容。


3、創建空文件和刷新時間-touch

touch命令用於修改文件或者目錄的時間屬性,包括存取時間和更改時間。若文件不存在,系統會建立一個新的文件。

touch [-acfm] [-d<日期時間>][-r<參考文件或目錄>] [-t<日期時間>] file

  • -a 改變atime和ctime時間
  • -m 改變mtime和的ctime時間
  • -t 設定檔案的時間記錄,格式與 date 指令相同;改變aime和mtime時間
  • -c文件不存在,不創建


4、複製文件和目錄-cp

   cp [options] source dest    cp [options] source... directory

  • -a:此選項通常在複製目錄時使用,它保留鏈接、文件屬性,並複製目錄下的所有內容。其作用等於dpR參數組合。
  • -d:複製時保留鏈接。這裏所說的鏈接相當於Windows系統中的快捷方式。
  • -f:覆蓋已經存在的目標文件而不給出提示。
  • -i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
  • -p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。
  • -r:若給出的源文件是一個目錄文件,此時將複製該目錄下所有的子目錄和文件。
  • -l:不復制文件,只是生成鏈接文件

將當前目錄下的所有文件複製到新目錄 /home/newtest 下

[root@MiWiFi-R4CM-srv test]# cp -r . /home/newtest

將文件複製到新目錄/home/newtest

[root@MiWiFi-R4CM-srv test]# cp litao laowang /home/newtest/

創建/testdir/rootdir目錄並複製/root下所有文件到該目錄內,要求保留原有權限。

cp -rp /root/* testdir/rootdir/

5、移動和重命名-mv

mv [options] source dest mv [options] source... directory

  • -b: 當目標文件或目錄存在時,在執行覆蓋前,會爲其創建一個備份。
  • -i: 如果指定移動的源目錄或文件與目標的目錄或文件同名,則會先詢問是否覆蓋舊文件,輸入 y 表示直接覆蓋,輸入 n 表示取消該操作。
  • -f: 如果指定移動的源目錄或文件與目標的目錄或文件同名,不會詢問,直接覆蓋舊文件。
  • -n: 不要覆蓋任何已存在的文件或目錄。
  • -u:當源文件比目標文件新或者目標文件不存在時,才執行移動操作。

將當前文件及目錄移動到文件夾ingo中

[root@localhost litao]# ls
passwd_bak  passwd_link  passwd_link2  passwd_link4  shadowlink  testdir
[root@localhost litao]# mkdir ingo
[root@localhost litao]# mv passwd_* shadowlink testdir/ ingo/
[root@localhost litao]# ls ingo/
passwd_bak  passwd_link  passwd_link2  passwd_link4  shadowlink  testdir

將 ingo 目錄放入 logs 目錄中。注意,如果 logs 目錄不存在,則該命令將 info 改名爲 logs。

[root@localhost litao]# mv ingo/ logs

6、刪除文件-rm

rm [options] name...

  • -i 刪除前逐一詢問確認。
  • -f 即使原檔案屬性設爲唯讀,亦直接刪除,無需逐一確認。
  • -r 將目錄及以下之檔案亦逐一刪除。

刪除文件可以直接使用rm命令,若刪除目錄則必須配合選項"-r",例如:

[root@localhost logs]# rm -f ingo/
rm: cannot remove 'ingo/': Is a directory
[root@localhost logs]# rm -rf ingo/

ls stat touch cp mv rm

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