Linux文件管理命令

系統版本:

[root@node1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 
[root@node1 ~]# uname -r
3.10.0-229.el7.x86_64

 

目錄操作命令

ls


列出指定目錄下的內容。

語法:

ls [OPTION]... [FILE]...

選項:

  • -a: 顯示所有文件,包括隱藏文件
  • -A: 顯示除.和..之外的所有文件
  • -l: --long,長格式列表,即顯示文件的詳細屬性信息
  • -h, --human-readable: 對文件大小單位換算,換算後結果可能會是非精確值
  • -d: 查看目錄自身而非其內部的文件列表
  • -r: reverse,逆序顯示
  • -R: recursive,遞歸顯示

示例:

[root@node1 ~]# ls -l /var/log
....
-rw-r--r--. 1 root root  6340 May 23 14:51 boot.log
....

以上各字段含義:

  • -rw-r--r--
    • rw-: 文件屬主的權限
    • r--: 文件屬組的權限
    • r--: 其它用戶(非屬主、屬組)的權限
  • 1: 數字表示文件被硬鏈接的次數
  • 第一個root: 文件的屬主
  • 第二個root: 文件的屬組
  • 6340: 數字表示文件的大小,單位是字節
  • May 23 14:51: 文件最近一次被修改的時間
  • boot.log: 文件名

 

cd


切換目錄。

語法:

cd [/PATH/TO/SOMEDIR]

選項:

  • cd: 切換回家目錄
  • cd ~: 切換回自己的目錄
  • cd ~USERNAME: 切換至指定用戶的家目錄
  • cd ..: 進入上一層目錄
  • cd -: 在上一次所在目錄與當前目錄之間來回切換

 

pwd


顯示當前目錄。

語法:

pwd [OPTION]...

選項:

  • -P: 顯示出真實的路徑,而非使用鏈接 (link) 路徑

示例:

[root@node1 ~]# cd /var/mail
[root@node1 mail]# pwd -P
/var/spool/mail

 

mkdir


創建目錄。

語法:

[OPTION]... DIRECTORY...

選項:

  • -p: 自動按需創建父目錄
  • -v: verbose,顯示詳細過程
  • -m MODE: 直接給定權限

示例:

[root@node1 ~]# mkdir -pv /tmp/m/n/p
mkdir: created directory ‘/tmp/m’
mkdir: created directory ‘/tmp/m/n’
mkdir: created directory ‘/tmp/m/n/p’

 

rmdir


刪除空目錄。

語法:

rmdir [OPTION]... DIRECTORY...

選項:

  • -p: 刪除某目錄後,如果其父目錄爲空,則一併刪除
  • -v: 顯示過程

 

目錄與文件的複製、刪除、移動命令

cp


拷貝文件和目錄。

單源複製:

cp [OPTION]... [-T] SOURCE DEST

  • 如果DEST不存在:則先創建此文件,並複製源文件的數據流至DEST中
  • 如果DEST存在:
    • 如果DEST是非目錄文件:覆蓋目標文件
    • 如果DEST是目錄文件:先在DEST目錄下創建一個與源文件同名的文件,並複製其數據流

多源複製:

cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

  • 如果DEST不存在:錯誤
  • 如果DEST存在:
    • 如果DEST是非目錄文件:錯誤
    • 如果DEST是目錄文件:分別複製每個文件至目標目錄中,並保持原名

選項:

  • -i: 交互式複製,即覆蓋之前提醒用戶確認
  • -f: 強制覆蓋目標文件
  • -r, -R: 遞歸複製目錄
  • -d: 複製符號鏈接文件本身,而非其指向的源文件
  • -a: -dR --preserve=all, archive, 用於實現歸檔(備份)
  • --preserve=
    • mode: 權限
    • ownership: 屬主和屬組
    • timestamps: 時間戳
    • context: 安全標籤
    • xattr: 擴展屬性
    • links: 符號鏈接
    • all: 上述所有屬性

示例:

[root@node1 ~]# cp -r /var/log/ /tmp/
[root@node1 ~]# ll /tmp/log/
total 3508
drwxr-xr-x. 2 root root 4096 Jun 2 16:28 anaconda
drwxr-x---. 2 root root 22 Jun 2 16:28 audit
-rw-r--r--. 1 root root 6397 Jun 2 16:28 boot.log
-rw-------. 1 root root 0 Jun 2 16:28 btmp
-rw-------. 1 root root 384 Jun 2 16:28 btmp-20180601
....

 

mv


移動(重命名)文件。

語法:

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

選項:

  • -i: 交互式
  • -f: 強制

 

rm


刪除文件或目錄。

語法:

rm [OPTION]... FILE...

選項:

  • -i: 交互式
  • -f: 強制
  • -r: 遞歸

刪除目錄: rm -rf /PATH/TO/DIR

建議不要使用rm直接刪除數據,而是先使用mv將數據統一移動到一個目錄下,再定期清理。

 

文件的新建與查看命令

touch


更改文件時間戳或創建空文件。

語法:

touch [OPTION]... FILE...

選項:

  • -c: 指定的文件路徑不存在時不予創建
  • -a: 僅修改access time
  • -m: 僅修改modify time
  • -t [[CC]YY]MMDDhhmm[.ss]: 指定時間戳

示例:

[root@node1 ~]# touch /tmp/functions
#創建functions空文件
 
[root@node1 ~]# ll /tmp/functions
-rw-r--r-- 1 root root 0 Jun 2 18:04 /tmp/functions
 
[root@node1 ~]# touch -m -t 0212010303.03 /tmp/functions
#修改modify time爲2002年12月1日3點3分3秒
 
[root@node1 ~]# stat /tmp/functions
#使用stat命令顯示文件時間戳信息
File: ‘/tmp/functions’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 101524444 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-02 18:04:01.035507593 +0800
Modify: 2002-12-01 03:03:03.000000000 +0800
Change: 2018-06-02 18:05:18.605411488 +0800
Birth: -

 

cat


查看文本文件的內容。

語法:

cat [OPTION]... [FILE]...

選項:

  • -n: 給顯示的文本行編號
  • -E: 顯示行結束符$

示例:

[root@node1 ~]# cat -n /etc/fstab
1
2 #
3 # /etc/fstab
4 # Created by anaconda on Tue May 22 11:36:12 2018
5 #
6 # Accessible filesystems, by reference, are maintained under '/dev/disk'
7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8 #
9 /dev/mapper/centos-root / xfs defaults 0 0
10 UUID=05a06e03-2c09-49d2-9e38-915bd43eba31 /boot xfs defaults 0 0
11 /dev/mapper/centos-swap swap swap defaults 0 0

 

more


一頁一頁翻屏查看文件。

快捷鍵:

  • space: 向下翻一行
  • Enter: 代表向下翻一行
  • /keyword: 代表在這個顯示的內容當中,向下搜尋字串這個關鍵字
  • :f: 立刻顯示出檔名以及目前顯示的行數
  • q: 代表立刻離開 more ,不再顯示該文件內容
  • b或Ctrl+b: 代表往回翻頁,不過這動作只對文件有用

 

less


一頁一頁翻屏查看文件。less與more區別:使用more命令,不能向前翻,只能往後翻,但less可以使用 [pageup] [pagedown] 等按鍵翻看文件。

快捷鍵:

  • 空格鍵:向文件尾翻一屏
  • b:向文件首部翻一屏
  • ctrl+d:向文件尾部翻半屏
  • ctrl+u:向文件首部翻半屏
  • 回車鍵:向文件尾部翻一行
  • k:向文件首部翻一行
  • G:跳轉至最後一行
  • g:跳轉至第一行
  • #G:跳轉至指定行
  • 1G:跳轉至文件首部
  • q: 退出

文本搜索:

  • /keyword: 從文件首部向文件尾部依次查找
  • ?keyword: 從文件尾部向文件首部依次查找
    • n: 與查找命令方向相同
    • N: 與查找命令方向相反

 

head


顯示文件開頭的內容。

語法:

head [OPTION]... [FILE]...

選項:

  • -n #或-#: 顯示指定行數的內容

示例:

[root@node1 ~]# head -n 5 /etc/rc.d/init.d/functions
# --Shell-script--
#
# functions This file contains functions to be used by most or all
# shell scripts in the /etc/init.d directory.
#

 

tail


顯示文件結尾的內容。

語法:

tail [OPTION]... [FILE]...

選項:

  • -n #或-#: 顯示指定行數的內容
  • -f: 查看文件尾部內容結束後不退出,跟隨顯示新增的行

 

查看文件類型的命令

file


查看文件內容類型。

示例:

[root@node1 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xec333a104e045327c5e3d0ca6dda16c610a210f3, stripped

 
 

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