文件管理
- ls
命令
ls
是最常被使用到的Linux
命令之一,来自于英文单词list的缩写,也正如list
单词的英文意思,其功能是列举出指定目录下的文件名称及其属性
- 输出当前目录中的文件(默认不含隐藏文件)
ls
root@zhuolisu-virtual-machine:~# ls
700 视频 下载 Firefox_wallpaper.png heihei mine test.sh
公共的 图片 音乐 he install.sh my.sh www.linuxprobe.com
模板 文档 桌面 hei LinuxProbe.pdf snap yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
- 输出当前目录中的文件(含隐藏文件)
ls -a
root@zhuolisu-virtual-machine:~# ls -a
. 视频 桌面 .dbus install.sh .my.html.swp snap .wget-hsts
.. 图片 .bash_history Firefox_wallpaper.png LinuxProbe.pdf my.sh .ssh www.linuxprobe.com
700 文档 .bashrc he .local .pip test.sh .Xauthority
公共的 下载 .cache hei mine .profile .thunderbird yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
模板 音乐 .config heihei .mozilla .rpmdb .viminfo
- 输出文件的长格式,包含属性详情信息
ls -l
root@zhuolisu-virtual-machine:~# ls -l
总用量 19456
drwxr-xr-x 2 root root 4096 6月 14 11:45 700
drwxr-xr-x 2 root root 4096 6月 15 21:08 公共的
drwxr-xr-x 2 root root 4096 6月 15 21:08 模板
drwxr-xr-x 2 root root 4096 6月 15 21:08 视频
drwxr-xr-x 2 root root 4096 6月 15 21:08 图片
# 部分信息省略
- 输出指定目录中的文件列表
ls 指定目录
root@zhuolisu-virtual-machine:~# ls /home
www zhuolisu
- 输出文件名称及inode属性块号码
每个inode
都有一个号码,操作系统用inode
号码来识别不同的文件
ls -i
root@zhuolisu-virtual-machine:/home# ls -i
816520 www 812043 zhuolisu
- 搭配通配符输出指定目录中所有以S结尾文件名称
ls 通配符下的目标目录 -l
root@zhuolisu-virtual-machine:/home# ls /root/*sh -l
-rw-r--r-- 1 root root 29450 5月 31 14:22 /root/install.sh
-rw-r--r-- 1 root root 29450 5月 31 14:22 /root/my.sh
-rwxr-xr-x 1 root root 309 6月 16 09:32 /root/test.sh
- 依据文件大小进行排序,输出指定目录中文件属性详情信息
ls -Sl 目标目录
root@zhuolisu-virtual-machine:/home# ls -Sl /root
总用量 19456
-rw-r--r-- 1 root root 17676281 6月 15 15:24 LinuxProbe.pdf
-rw-r--r-- 1 root root 2076519 6月 16 08:37 Firefox_wallpaper.png
-rw-r--r-- 1 root root 29450 5月 31 14:22 install.sh
# 部分已经省略
- ll
命令
ll命令
的功能是显示指定文件或目录的详细属性信息,实际它不是一个真实存在的命令文件,而是ls -l --color=auto
的别名而已。ll命令
可以默认列出当前目录内文件的详细属性信息,包含权限、所属、修改时间以及容量占用大小等等信息
- 显示当前目录内文件详细属性信息
ll
root@zhuolisu-virtual-machine:/home# ll
总用量 16
drwxr-xr-x 4 root root 4096 6月 10 15:45 ./
drwxr-xr-x 22 root root 4096 6月 14 11:40 ../
drwxr-xr-x 2 www www 4096 6月 10 15:45 www/
drwxr-x--- 19 zhuolisu zhuolisu 4096 6月 15 09:58 zhuolisu/
- 以文件上次被修改的时间排序,显示当前目录内文件详细属性信息
ll -t
root@zhuolisu-virtual-machine:/home# ll -t
总用量 16
drwxr-x--- 19 zhuolisu zhuolisu 4096 6月 15 09:58 zhuolisu/
drwxr-xr-x 22 root root 4096 6月 14 11:40 ../
drwxr-xr-x 4 root root 4096 6月 10 15:45 ./
drwxr-xr-x 2 www www 4096 6月 10 15:45 www/
- 以更易读的容量单位显示文件大小
ll -h
root@zhuolisu-virtual-machine:/home# ll -h
总用量 16K
drwxr-xr-x 4 root root 4.0K 6月 10 15:45 ./
drwxr-xr-x 22 root root 4.0K 6月 14 11:40 ../
drwxr-xr-x 2 www www 4.0K 6月 10 15:45 www/
drwxr-x--- 19 zhuolisu zhuolisu 4.0K 6月 15 09:58 zhuolisu/
- 查看某个指定文件的详细属性信息
ll 指定文件
root@zhuolisu-virtual-machine:~# ll install.sh
-rw-r--r-- 1 root root 29450 5月 31 14:22 install.sh
- tree
命令
tree命令
的功能是用于以树状图形式列出目录内容,帮助了解到目录的层级关系
- 显示当前工作目录下的文件层级情况
tree
root@zhuolisu-virtual-machine:/home# tree
.
├── www
└── zhuolisu
├── 公共的
├── 模板
├── 视频
├── 图片
├── 文档
│ └── login
│ ├── background.png
│ ├── css
│ │ └── login.css
│ ├── img.png
│ ├── index.html
│ └── my.tar.gz
├── 下载
├── 音乐
├── 桌面
├── snap
│ └── snap-store
│ ├── 518
│ ├── 558
│ ├── common
│ └── current -> 558
└── test
└── anaconda-ks.cfg
19 directories, 16 files
- 以文件和目录的更改时间进行排序
tree -t
root@zhuolisu-virtual-machine:/home# tree -t
.
├── www
└── zhuolisu
├── 公共的
├── 模板
├── 视频
├── 下载
├── 音乐
├── 桌面
├── snap
│ └── snap-store
│ ├── common
│ ├── 518
│ ├── current -> 558
│ └── 558
├── 文档
│ └── login
│ ├── background.png
│ ├── css
│ │ └── login.css
│ ├── img.png
│ ├── index.html
│ └── my.tar.gz
├── 图片
└── test
└── anaconda-ks.cfg
19 directories, 16 files
- 以带有相对路径的形式,显示当前工作目录下的文件层级情况
tree -f
root@zhuolisu-virtual-machine:/home# tree -f
.
├── ./www
└── ./zhuolisu
├── ./zhuolisu/公共的
├── ./zhuolisu/模板
├── ./zhuolisu/视频
├── ./zhuolisu/图片
├── ./zhuolisu/文档
│ └── ./zhuolisu/文档/login
│ ├── ./zhuolisu/文档/login/background.png
│ ├── ./zhuolisu/文档/login/css
│ │ └── ./zhuolisu/文档/login/css/login.css
│ ├── ./zhuolisu/文档/login/img.png
│ ├── ./zhuolisu/文档/login/index.html
│ └── ./zhuolisu/文档/login/my.tar.gz
├── ./zhuolisu/下载
├── ./zhuolisu/音乐
├── ./zhuolisu/桌面
├── ./zhuolisu/snap
│ └── ./zhuolisu/snap/snap-store
│ ├── ./zhuolisu/snap/snap-store/518
│ ├── ./zhuolisu/snap/snap-store/558
│ ├── ./zhuolisu/snap/snap-store/common
│ └── ./zhuolisu/snap/snap-store/current -> 558
└── ./zhuolisu/test
└── ./zhuolisu/test/anaconda-ks.cfg
19 directories, 16 files
- 只显示目录的层级关系情况
tree -d
root@zhuolisu-virtual-machine:/home# tree -d
.
├── www
└── zhuolisu
├── 公共的
├── 模板
├── 视频
├── 图片
├── 文档
│ └── login
│ └── css
├── 下载
├── 音乐
├── 桌面
├── snap
│ └── snap-store
│ ├── 518
│ ├── 558
│ ├── common
│ └── current -> 558
└── test
19 directories
- cp
命令
cp命令
来自于英文单词copy
的缩写,用于将一个或多个文件或目录复制到指定位置,亦常用于文件的备份工作
- 在当前工作目录中,将某个文件复制一份,并定义新文件名称
cp 旧文件名 新文件名
root@zhuolisu-virtual-machine:~/mine# ls
install.sh my snap-store
root@zhuolisu-virtual-machine:~/mine# cp install.sh my.sh
root@zhuolisu-virtual-machine:~/mine# ls
install.sh my my.sh snap-store
- 在当前工作目录中,将某个目录复制一份,并定义新目录名称
cp -r 旧目录名 新目录名
-r
为递归复制文件和目录
root@zhuolisu-virtual-machine:~/mine# ls
install.sh my my.sh snap-store
root@zhuolisu-virtual-machine:~/mine# cp -r my mine
root@zhuolisu-virtual-machine:~/mine# ls
install.sh mine my my.sh snap-store
- 复制某个文件时,保留其原始权限及用户归属信息
cp -a 旧文件名 新文件名
-p
保留源文件或目录的所有属性 , -r
递归复制文件和目录,-d
当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录,-a
相当于pdr
root@zhuolisu-virtual-machine:~/mine# ls -l
总用量 132
-rw-r--r-- 1 root root 29450 6月 16 11:29 mine
drwxr-xr-x 5 root root 4096 6月 14 11:32 snap-store
root@zhuolisu-virtual-machine:~/mine# cp -a mine min
root@zhuolisu-virtual-machine:~/mine# ls -l
总用量 164
-rw-r--r-- 1 root root 29450 6月 16 11:29 min
-rw-r--r-- 1 root root 29450 6月 16 11:29 mine
drwxr-xr-x 5 root root 4096 6月 14 11:32 snap-store
- 将某个文件复制到
/etc
目录中,并覆盖已有文件,不进行询问
cp -f 文件名 文件目录
(可复制多个文件在同一个文件目录下)
-f
若目标文件已存在,则会直接覆盖原文件
root@zhuolisu-virtual-machine:~/mine# cp -f my.sh /etc
root@zhuolisu-virtual-machine:~/mine# ls /etc
console-setup geoclue ldap mtab pulse subgid xattr.conf
cracklib ghostscript ld.so.cache my.sh python2.7 subgid- xdg
- chgrp
命令
chgrp
是英语单词change group
的缩写,命令的作用和其中文释义一样,为用于变更文件或目录的所属群组
- 将文件目录及其子目录下的所有文件的用户组改为某属组下
chgrp [-R] 属组名 文件名
-R
递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
- chown
命令
chown命令
来自于英文词组Change owner
的缩写,其功能是用于改变文件或目录的用户和用户组信息
- 进入目录将某个文件的拥有者更改
chown [–R] 属主名 文件名
-R
对目前目录下的所有文件与目录进行相同的变更
root@zhuolisu-virtual-machine:/# cd ~
root@zhuolisu-virtual-machine:~# chown bin install.log
root@zhuolisu-virtual-machine:~# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
- 改变指定文件的所属主与所属组
chown [-R] 属主名:属组名 文件名
root@zhuolisu-virtual-machine ~# chown root:root install.log
root@zhuolisu-virtual-machine ~# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
- chmod
命令
chmod命令
来自于英文词组change mode
的缩写,其功能是用于改变文件或目录权限的命令
- 设置某个文件的数字权限
chmod [-R] xyz 文件或目录
xyz
数字类型的权限属性,为rwx
属性数值的相加
-R
递归的持续变更,此目录下的所有文件都会变更
root@zhuolisu-virtual-machine ~# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
root@zhuolisu-virtual-machine ~# chmod -R 777 .bashrc
root@zhuolisu-virtual-machine ~# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
权限变成 -rwxr-xr--
,权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754
- 符号类型改变文件权限
九个权限分别是user group others
三种身份,由u g o
来代表三种身份的权限
a
则代表all
亦即全部的身份 读写的权限为r w x
chmod u g o a + (/)-r w x 文件或目录
root@zhuolisu-virtual-machine ~# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
root@zhuolisu-virtual-machine ~# chmod a+w .bashrc
root@zhuolisu-virtual-machine ~# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
- mkdir
命令
mkdir命令
来自于英文词组make directories
的缩写,其功能是用来创建目录文件
- 在当前工作目录中,建立一个目录文件
mkdir 新目录名
(可建立多个目录)
root@zhuolisu-virtual-machine:/home/www# tree -d
.
0 directories
root@zhuolisu-virtual-machine:/home/www# mkdir temp
root@zhuolisu-virtual-machine:/home/www# tree -d
.
└── temp
1 directory
- 在当前工作目录中,创建一个目录文件并设置权限
-m
建立目录的同时设置目录的权限
mkdir -m 权限 新目录名
root@zhuolisu-virtual-machine:/home/www# mkdir -m 777 temp1
root@zhuolisu-virtual-machine:/home/www# ls -l
总用量 8
drwxr-xr-x 2 root root 4096 6月 17 08:11 temp
drwxrwxrwx 2 root root 4096 6月 17 08:15 temp1
- 一次性创建多个有嵌套关系的目录文件
-p
递归创建多级目录
mkdir -p 新的多级目录
root@zhuolisu-virtual-machine:/home/www# mkdir -p my/my/you
root@zhuolisu-virtual-machine:/home/www# tree -d
.
├── my
│ └── my
│ └── you
├── temp
└── temp1
5 directories
- mv
命令
mv命令
来自于英文单词move
的缩写,其功能与英文含义相同,用于对文件进行剪切和重命名
- 在当前工作目录中,对某个文件进行剪切后粘贴(重命名)操作
mv 旧文件名 新文件名
root@zhuolisu-virtual-machine:/home/www# mv temp hei
root@zhuolisu-virtual-machine:/home/www# tree -d
.
├── hei
├── my
│ └── my
│ └── you
└── temp1
5 directories
- 将某个文件移动到新目录中,保留文件原始名称
mv 旧文件 目录名
(目录移动同理)
root@zhuolisu-virtual-machine:/home/www# mv hei /home/www/temp1
root@zhuolisu-virtual-machine:/home/www# tree -d
.
├── my
│ └── my
│ └── you
└── temp1
└── hei
5 directories
-i
若存在同名文件,则向用户询问是否覆盖
-f
覆盖已有文件时,不进行任何提示
- pwd
命令
pwd命令
来自于英文词组print working directory
的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径
- 查看当前工作目录路径
pwd
root@zhuolisu-virtual-machine:/home/www# pwd
/home/www