对Linux的使用中,对文件的操作是最基本的操作,也是非常重要的一部分。
在Linux中,是把一切都当作文件看待的。这是它与Windows的区别,不管设备,还是网络,都可以当作文件来进行读写操作。即使是硬件,也可以进行读写,比如往声卡中传入一些乱码就会产生噪声。
文件类型
那对于不同的文件由不同的类型,比如目录与普通文件,符号链接,设备文件。在系统中,每种文件用不同的字母表示。
- 普通文件 -
- 目录文件 d
- 链接文件 l
- 字符设备文件 c
- 块设备文件 b
这些字符通常是在查看文件的具体的属性时会出现,比如使用
ls -l //通常可以简写为ll
时可以查看文件的类型、文件的读写权限、文件的所属者、文件的修改日期等。
文件权限
对于Linux中的每个文件来说,都具有非常严格的访问权限,每个用户对每个文件的访问权限都是不一样的,具体来说有三种权限,也是用三个字母来表示。
- 读权限 r
- 写权限 w
- 可执行权限 x
另外,这些文件的权限不单单是文件本身的,更要相对于访问者来说。比如相对于文件所属者来说有某种权限,但是相对于组管理用户来说就是其他的权限,其他用户又有不一样的权限。
查看文件或目录
在上面的两种文件属性中,可以通过ls命令来查看,不过,想看到具体的属性,需要加上参数-l,即
ls -l
ll //与上面一样
也可以使用ll命令来查看,ll命令就是ls -l的别名,在Linux系统中,还有一些常用的命令也有别名,可以通过alias命令来查看,当然,也可以设置自己常用的别名简化自己的操作。
ls的查看结果,也包括其他内容,例如
-rwxrwxrwx 2 test test 4096 7月 6 21:03 t.txt
如上面这样的属性结果,每一列都有不同的含义。
- 第一列:-表示的是普通文件类型,rwx表示的是文件的权限,其中,前三个表示文件owner的操作权限,中间三个表示group的操作权限,最后三个表示others的操作权限。
- 第二列:表示文件的硬链接数或者目录的子目录数。对于任何目录来说,都有两个默认的子目录 . (当前目录) 和 …(父目录)
- 第三列:文件所属的用户
- 第四列:文件所属用户组
- 第五列:文件大小或者目录大小
- 第六列:文件的最后一次修改时间
- 第七列:文件名称
路径表示
文件的路径可以用相对路径和绝对路径来表示,这和Windows的路径表示类似,但也有一些常用符号。
- 根目录 /
- 当前目录 .
- 父目录 …
- 用户主目录 ~
- 上一次所在目录 -
经常在移动或者复制文件时使用这些常用的路径符号。
文件基本操作
- 创建文件 touch filename
- 创建目录 mkdir directory
- 移动或者重命名 mv source destination
- 复制 cp source destination
- 文件删除 rm filename
- 空目录删除 rmdir directory
- 目录删除 rm -rf directory(r:递归,f:强制,没有回收站)
欢迎大家关注公众号“计算机视觉与机器学习”