Linux-文件管理

文件管理

ls

作用

显示当前工作目录下的所有文件和文件夹

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 格式:ls [参数] [路径]
# 常用可选参数
# 不要忽略以.开头的文件,即不忽略隐藏文件
-a, --all do not ignore entries starting with .
# 以列表形式展示所有的文件
-l use a long listing format
# 输出每个文件的索引值
-i, --inode print the index number of each file
# 按照文件大小排序
-S sort by file size
# 以相反次序展示
-r, --reverse reverse order while sorting
# 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-A, --almost-all do not list implied . and ..
# 显示每个文件的作者,和-l配合使用
--author with -l, print the author of each file
# 递归显示所有的子文件夹
-R, --recursive list subdirectories recursively
# 水平列出文件,以逗号分隔
-m fill width with a comma separated list of entries

# 文件颜色说明
白色 普通文件
蓝色 文件夹
绿色 可执行文件
红色 压缩文件
浅蓝色 链接文件
红色闪烁 链接的文件有问题
黄色 设备文件

参考案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 显示当前目录的所有文件
# PS:文件夹也是一种文件,叫文件夹文件
[root@zhima /]# ls
bin boot data dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

# 以列表形式显示当前目录下的所有文件,不显示.和..
[root@zhima home]# ls -A -l
total 20
-rw-r--r-- 1 root root 4 Jan 8 10:37 file1
-rw-r--r-- 1 root root 4 Jan 8 10:41 file2
drwxr-xr-x 2 root root 4096 Jan 8 10:47 temp
drwxr-xr-x 3 root root 4096 Jan 5 16:05 university
drwxr-xr-x 3 root root 4096 Jan 5 16:14 zhima

# 以列表形式显示当前目录下的所有文件,包括隐藏文件
[root@zhima home]# ls -a -l
total 28
drwxr-xr-x. 5 root root 4096 Jan 8 10:47 .
dr-xr-xr-x. 19 root root 4096 Jan 8 11:19 ..
-rw-r--r-- 1 root root 4 Jan 8 10:37 file1
-rw-r--r-- 1 root root 4 Jan 8 10:41 file2
drwxr-xr-x 2 root root 4096 Jan 8 10:47 temp
drwxr-xr-x 3 root root 4096 Jan 5 16:05 university
drwxr-xr-x 3 root root 4096 Jan 5 16:14 zhima

# 显示 / 目录下的所有文件
[root@zhima home]# ls /
bin boot data dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var

文件属性

这里说一下ls -al中展示了文件的哪些属性,分别都代表什么意思

1
2
3
4
5
6
7
[root@zhima home]# ls -Al
total 20
-rw-r--r-- 1 root root 4 Jan 8 10:37 file1
-rw-r--r-- 1 root root 4 Jan 8 10:41 file2
drwxr-xr-x 2 root root 4096 Jan 8 10:47 temp
drwxr-xr-x 3 root root 4096 Jan 5 16:05 university
drwxr-xr-x 3 root root 4096 Jan 5 16:14 zhima

将每一行分为6组来看

第一组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 这一组固定10个字符
# 第一个字符是表示文件类型,有下面常见的几种
d 文件夹
- 普通文件
l 链接文件(Linked File)
b 装置文件,里面可能有供存储的接口设备
c 装置文件里面的串行端口设备,例如键盘或者鼠标
# 后9个字符表示操作权限,每3个字符为一组
# 下面是四种权限类型的表示
r read(可读)
w write(可写)
x execute(可执行)
- 没有此权限
# 第一组三个字符是表示 属主(文件的所有者) 对此文件的权限
# 第二组三个字符是表示 属组(文件的所有者的同组的用户) 对此文件的权限
# 第三组三个字符是表示 其他用户 对此文件的权限说明
第二组
1
2
3
4
# 此文件是文件夹文件
此位数字表示的是文件夹内的文件数量
# 此文件夹是文件
此位数字固定是1
第三组
1
2
# 第一列是属主
# 第一列是属组
第四组
1
# 文件大小
第五组
1
# 文件创建时间
第六组
1
# 文件名

cp

作用

复制文件或目录

使用说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 格式:cp [参数] 源文件 目标文件
[root@zhima home]# cp file1 file2
# 常用可选参数
# 若目标文件已存在,直接覆盖
-f, --force if an existing destination file cannot be
opened, remove it and try again
# 递归复制文件夹
-R, -r, --recursive copy directories recursively
# 覆盖前询问
-i, --interactive prompt before overwrite
# 详细显示复制过程
-v, --verbose explain what is being done
# 建立硬链接
-l, --link hard link files instead of copying
# 建立软链接(符号链接)
-s, --symbolic-link make symbolic links instead of copying
# 保留源文件或者目录的所有属性
-p same as --preserve=mode,ownership,timestamps
# 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-d same as --no-dereference --preserve=links
# 等同于 -p -d -r
-a, --archive same as -dR --preserve=all

参考案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 将源文件file1复制到目标文件file2
[root@zhima home]# ls
file1 temp university zhima
[root@zhima home]# cp file1 file2
[root@zhima home]# ls
file1 file2 temp university zhima

# 将源文件file1复制到目标文件file2,如果存在file2,则拷贝一份
[root@zhima home]# ls
file1 file2 temp university zhima
[root@zhima home]# cp -b file1 file2
cp: overwrite ‘file2’? y
[root@zhima home]# ls
file1 file2 file2~ temp university zhima

mkdir

作用

创建目录文件

使用说明

1
2
3
4
5
6
7
8
9
# 格式:mkdir [参数] 目录名
[root@zhima home]# mkdir temp
# 常用参数
# 创建目录的时候设置权限
-m, --mode=MODE set file mode (as in chmod)
# 递归创建多级目录
-p, --parents no error if existing, make parent directories as needed
# 显示创建过程
-v, --verbose print a message for each created directory

参考案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建dir1、dir2两个目录文件
[root@zhima home]# ls
file1 temp university zhima
[root@zhima home]# mkdir dir1 dir2
[root@zhima home]# ls
dir1 dir2 file1 temp university zhima

# 递归创建目录
# 错误示范
[root@zhima home]# mkdir a/b/c/d
mkdir: cannot create directory ‘a/b/c/d’: No such file or directory
# 正确示范
[root@zhima home]# mkdir -p a/b/c/d
[root@zhima home]# ls
a dir1 dir2 file1 temp university zhima

# 创建目录的时候指定权限
[root@zhima home]# mkdir -m 700 dir3
[root@zhima home]# ls -l
# ...省略无关文件...
drwx------ 2 root root 4096 Jan 8 11:32 dir3
# ...省略无关文件...

pwd

作用

显示当前工作目录

参考案例

1
2
3
# 显示当前工作目录
[root@zhima c]# pwd
/home/a/b/c

mv

作用

移动文件或者重命名

使用说明

1
2
3
4
5
6
7
8
9
10
11
# 格式:mv [参数] 源文件 目标文件
# 覆盖前询问
-i, --interactive prompt before overwrite
# 直接覆盖,不询问
-f, --force do not prompt before overwriting
# 当文件存在时,覆盖前为其创建一个备份
-b like --backup but does not accept an argument
# 当源文件比目标文件新或者目标文件不存在的时候才执行移动操作
-u, --update move only when the SOURCE file is newer
than the destination file or when the
destination file is missing

参考案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 将dir1重命名为dir4
[root@zhima home]# ls
a dir1 file1 temp university zhima
[root@zhima home]# mv dir1 dir4
[root@zhima home]# ls
a dir4 file1 temp university zhima

# 将file1移动到temp文件夹中
[root@zhima home]# ls
file1 temp university zhima
[root@zhima home]# mv file1 temp/
[root@zhima home]# ls
temp university zhima

# 将/home/temp目录中的所有内容都复制到当前工作路径下,并且重命名为dir
[root@zhima zhima]# mv -f /home/temp/ ./dir
[root@zhima zhima]# ls
nextcloud dir

cd

作用

切换工作目录

Linux目录结构

在Linux系统中,一切皆文件,下面是Linux系统中的目录结构

  • /bin: bin是Binary的缩写,这个目录存放着最经常使用的命令
  • /boot: 这里存放的是启动Linux的时候使用的一些核心文件(不要动)
  • /dev: dev是Device的缩写,存放的是Linux的外设设备,
  • /etc: 这个目录是用来存放所有的系统管理所需要的配置文件和子目录
  • /home: 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是使用用户的账号来命名的
  • /lib: 这里存放着系统最基本的动态连接共享库(不要动)
  • /lost+found: 这个目录一般是空的,但是当服务器意外关闭的时候,里面会存在一些错误文件(不要动)
  • /media: Linux系统会自动识别一些设备,例如u盘,光驱等等
  • /mnt: 这个目录是给用户来临时挂载别的文件系统的(后面会把本地文件挂载在这个目录下)
  • /opt: 给主机额外安装软件所在的目录
  • /proc: 这是一个虚拟的目录,他是系统内存的映射,我们可以通过直接访问这个目录来获得系统信息(不用管)
  • /root(也就是 ~ ): 该目录是系统管理员目录,也称作超级权限者的用户主目录
  • /sbin: s就是super的意思,这里存放的是系统管理员使用的系统管理程序
  • /srv: 该目录用来存放一些守护进程启动之后需要提取的数据
  • /sys: 这是Linux2.6内核的一个很大的改变,该目录下安装了2.6内核中新出现的一个文件系统sysfs
  • /tmp: 这个目录使用来存放一些临时文件的
  • /usr: 这个目录用来存放用户的应用程序和文件
  • /usr/bin: 系统用户使用的应用程序
  • /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护进程
  • **/usr/src: ** 内核源代码默认存放的地址
  • /var: 这个目录用来存放着一些不断在拓充的东西,习惯性的将一些经常修改的目录放在该目录下
  • /run: 是一个临时文件系统,存储系统启动以来的信息,当系统重启时,该目录下的文件应该被删掉(不用管)
  • /www: 存放服务器网站的相关的资源,环境,网站

不是每一个目录都一定会存在

然后就是要知道这两个概念

  1. 决定路径
  2. 相对路径

绝对路径:指的是资源的全路径,比如D:\APP\Typora

相对路径:指的是资源在当前目录下的路径,比如我现在在D:\APP目录下,我要定位到Typora这个目录,我可以直接使用Typora来表示该文件夹

使用说明

1
2
3
4
5
6
7
8
#进入根路径下的usr目录
[root@iZbp18qscowpmxk6xpk38iZ /]#cd /usr

#当前在根路径下,我要进入usr目录
[root@iZbp18qscowpmxk6xpk38iZ /]#cd usr

#返回上一级目录
[root@iZbp18qscowpmxk6xpk38iZ usr]#cd ..
给作者买杯咖啡吧~~~