小白入門之七:linux系統中的文件管理
目的
掌握創建文件、查看文件、復制文件、移動文件、刪除文件、創建軟鏈接等。
前提
先介紹下linux文件系統上的文件類型如下:
-:表示普通文件
d:表示目錄文件
b:表示塊設備文件
c:表示字符設備文件
l:表示軟鏈接文件
p:表示管道文件
s:表示套接字文件
【例1】查看文件類型
[root@Magedu ~]# ll
total 4
drwxr-xr-x 2 root root 54 May 23 09:00 testdir
-rw-r--r-- 1 root root 39 May 22 05:33 test.txt
顯示結果中,第一個位置的符號“-”就代表了文件類型為普通文件。
命令介紹
1、pwd命令:顯示當前shell的工作目錄
【例2】顯示當前工作目錄
[root@Magedu network-scripts]#
[root@Magedu network-scripts]# pwd
/etc/sysconfig/network-scripts
2、basename命令:取路徑基名
【例3】獲取/etc/sysconfig/的基名
[root@Magedu sysconfig]# basename /etc/sysconfig/
sysconfig
3、dirname命令:取路徑名
【例4】取/etc/sysconfig/的路徑名
[root@Magedu sysconfig]# dirname /etc/sysconfig/
/etc
4、cd命令:切換目錄
【例5】切換到用戶家目錄
[root@Magedu network-scripts]# cd
[root@Magedu ~]#
或:
[root@Magedu network-scripts]# cd ~
[root@Magedu ~]#
【例6】切換到父目錄
[root@Magedu network-scripts]# cd ..
[root@Magedu sysconfig]#
【例7】切換到/etc/sysconfig目錄下
[root@Magedu ~]# cd /etc/sysconfig/
[root@Magedu sysconfig]#
【例8】切換到上一次所在的目錄
[root@Magedu sysconfig]# cd -
/root
[root@Magedu ~]#
5、ls命令:列出目錄的內容
選項:
-a:包含隱藏文件;
-l:顯示額外信息;
-R:目錄遞歸通過;
-1:文件分行顯示;
【例9】顯示當前目錄下所有文件
[root@Magedu testdir]# ls -a
. .. test1.txt test.txt win.txt
【例10】顯示目錄內容的額外信息
[root@Magedu testdir]# ls -l
total 252
-rw-r--r-- 1 root root 0 May 23 09:00 test1.txt
-rw-r--r-- 1 root root 251734 May 23 04:15 test.txt
-rw-r--r-- 1 root root 9 May 23 04:06 win.txt
或:
[root@Magedu testdir]# ll
total 252
-rw-r--r-- 1 root root 0 May 23 09:00 test1.txt
-rw-r--r-- 1 root root 251734 May 23 04:15 test.txt
-rw-r--r-- 1 root root 9 May 23 04:06 win.txt
【例11】遞歸顯示目錄內容
[root@Magedu ~]# ls -R
.:
a b messaage.txt test test.txt
anaconda-ks.cfg fstab passwdtst testdir
./testdir:
test1.txt test.txt win.txt
【例12】組合應用
[root@Magedu testdir]# ll -aR
.:
total 256
drwxr-xr-x 2 root root 54 May 23 09:00 .
dr-xr-x---. 10 root root 4096 May 28 07:07 ..
-rw-r--r-- 1 root root 0 May 23 09:00 test1.txt
-rw-r--r-- 1 root root 251734 May 23 04:15 test.txt
-rw-r--r-- 1 root root 9 May 23 04:06 win.txt
6、stat命令:查看文件狀態
【例13】查看test.txt文件的狀態,注意三個時間戳
[root@Magedu ]# stat test.txt
File: ‘test.txt’
Size: 9 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33734497 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-05-25 21:55:56.298893545 -0400
Modify: 2018-05-25 08:44:11.510484658 -0400
Change: 2018-05-25 08:44:11.510484658 -0400
Birth: -
7、touch命令:創建空文件和刷新時間
【例14】創建空文件test.sh
[root@Magedu ~]# touch test.sh
[root@Magedu ~]# ll test.sh
-rw-r--r-- 1 root root 0 May 29 01:55 test.sh
8、cp命令:復制文件和目錄
【例15】把/etc/httpd/conf/httpd.conf文件和/etc/my.cnf文件拷貝到當前目錄
[root@Magedu dir1]# cp /etc/httpd/conf/httpd.conf /etc/my.cnf ./
[root@Magedu dir1]# ll
total 16
-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf
-rw-r--r-- 1 root root 570 May 29 02:13 my.cnf
【例16】把/etc/nginx目錄及其下面所有文件和子目錄拷貝到當前目錄
[root@Magedu dir1]# cp -R /etc/nginx/ ./
[root@Magedu dir1]# ll
total 20
-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf
-rw-r--r-- 1 root root 570 May 29 02:13 my.cnf
drwxr-xr-x 4 root root 4096 May 29 02:16 nginx
【例17】復制httpd.conf文件并重命名為httpd.conf.bak
[root@Magedu dir1]# cp httpd.conf httpd.conf.bak
[root@Magedu dir1]# ll
total 32
-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf
-rw-r--r-- 1 root root 11766 May 29 02:19 httpd.conf.bak
-rw-r--r-- 1 root root 570 May 29 02:13 my.cnf
drwxr-xr-x 4 root root 4096 May 29 02:16 nginx
【例18】復制/etc目錄下所有文件及其子目錄到當前目錄,并重命名為etc_bak
[root@Magedu dir1]# cp -R /etc ./etc_bak
[root@Magedu dir1]# ll
total 44
drwxr-xr-x 143 root root 8192 May 29 02:32 etc_bak
-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf
-rw-r--r-- 1 root root 11766 May 29 02:19 httpd.conf.bak
-rw-r--r-- 1 root root 570 May 29 02:13 my.cnf
drwxr-xr-x 4 root root 4096 May 29 02:16 nginx
9、mv命令:移動文件或目錄
注意:移動目錄時,無需添加-R遞歸選項,要與cp命令區別。
【例19】把當前目錄下nginx命令重命名為nginx_bak
[root@Magedu dir1]# mv nginx/ nginx_bak
[root@Magedu dir1]# ll
total 44
drwxr-xr-x 143 root root 8192 May 29 02:32 etc_bak
-rw-r--r-- 1 root root 11766 May 29 02:13 httpd.conf
-rw-r--r-- 1 root root 11766 May 29 02:19 httpd.conf.bak
-rw-r--r-- 1 root root 570 May 29 02:13 my.cnf
drwxr-xr-x 4 root root 4096 May 29 02:16 nginx_bak
【例20】把httpd.conf文件移動到/tmp目錄下
[root@Magedu dir1]# mv httpd.conf /tmp
[root@Magedu dir1]# ll
total 32
drwxr-xr-x 143 root root 8192 May 29 02:32 etc_bak
-rw-r--r-- 1 root root 11766 May 29 02:19 httpd.conf.bak
-rw-r--r-- 1 root root 570 May 29 02:13 my.cnf
drwxr-xr-x 4 root root 4096 May 29 02:16 nginx_bak
10、rm命令:刪除文件或目錄
【例21】刪除當前目錄下所有文件
[root@Magedu dir1]# rm -rf *
[root@Magedu dir1]# ll
total 0
11、mkdir命令:創建目錄
【例22】創建目錄a,其下包含b和c兩目錄,且b和c目錄下都有一個目錄d
[root@Magedu ~]# mkdir -p a/{b,c}/d
12、tree命令:顯示目錄樹
【例23】顯示a目錄的目錄樹
[root@Magedu ~]# tree a
a
├── b
│ └── d
└── c
└── d
4 directories, 0 files
【例24】查看/usr/local目錄樹,但僅查看2級的目錄深度
[root@Magedu ~]# tree -L 2 /usr/local
/usr/local
├── bin
├── etc
├── games
├── include
├── lib
├── lib64
├── libexec
├── sbin
├── share
│ ├── applications
│ ├── info
│ └── man
└── src
13 directories, 0 files
13、ln命令:創建鏈接文件
【例25】把 /usr/sbin/apachectl文件在當前目錄下創建軟連接文件為apachectl
[root@Magedu dir1]# ln -s /usr/sbin/apachectl apachectl
[root@Magedu dir1]# ll
total 0
lrwxrwxrwx 1 root root 19 May 29 02:57 apachectl -> /usr/sbin/apachectl
文章來源于網絡,侵刪!