本文讲了一些文件和目录本身的基础知识和操作,如新建、复制、移动等,并不涉及文件内容的查看、编辑、搜索等操作。
文件归属
文件的归属只有三种关系:
- 所有者u:即文件的拥有者,并且一个文件同时只能有一个所有者,一般是谁创建的文件,这个文件的所有者就是谁。
- 所属组g:文件归属的组,并且一个文件同时只能归属于一个组,只有组中的成员才能操作此文件。
- 其他人o:非前两者关系的用户就是其他人。
文件权限
Linux中权限的表示由四部分组成,如-rw-r--r--,第一部分为第一个字符,表示文件类型,常用文件类型有-(二进制文件)、d(目录)和l(软连接文件,相当于Windows中的快捷方式)。接下来每三个字符为一组的三个部分,分别代表该文件所有者u、所属组g和其他人o所拥有的权限,而每个部分的权限由三个字符表示其拥有的r读、w写和x执行权限,如果有该权限则用对应的字母表示,如果没有该权限则用-表示。
目录的rwx权限如下(文件的rwx权限很好理解,但是目录的rwx权限是有些差别的):
- r:可以列出目录中的内容。
- w:可以在目录中创建和删除文件。
- x:可以进入目录。
ls命令
ls [选项] [目录]:列出目录下的所有文件及子目录。
选项:
- -a:显示目录下的所有内容,包括隐藏文件(Linux中以点“.”开头的文件或目录为隐藏文件)。
- -l:显示目录下内容的详细信息,分别为权限、引用系数(相当于引用计数)、文件所有者、文件所属组、文件大小(单位Byte)、文件最后一次修改时间(Linux中没有创建时间的概念)、文件名。
- -h:人性化显示,将文件等内容的大小以较为人性化的方式显示,如M、G等,而不是默认的单位字节。
- -d:显示当前所在目录或指定目录本身。
- -i:显示文件或目录的id号(也称为i节点号)。
mkdir命令
mkdir [-p] 目录 [目录1 目录2 ...]:用于创建一个或多个空白目录。-p选项是用于递归创建目录。
cd命令
cd [目录]:切换到指定目录,目录还以使用一个点“.”表示当前目录,两个点“..”表示上一级目录。
pwd命令
显示当前目录的绝对路径。
rmdir命令
rmdir 目录:删除一个空目录。
rm命令
rm [-rf] 文件或目录:删除文件或目录,不加选项则默认删除文件。
- -r:删除目录。
- -f:强制执行。
cp命令
cp [-rp] 一个或多个原文件或目录 目标文件或目录:复制文件或目录,如果不加选项,则默认复制文件。当目标文件或目录不存在时,相当于复制并重命名。
- -r:复制目录。
- -p:保留文件属性,如最后一次修改时间等。
mv命令
mv 原文件或目录 目标文件或目录:移动(剪切)文件或目录。当目标文件或目录不存在时,则相当于剪切并重命名。
文件或目录重命名:Linux中没有直接的重命名命令,但是一般使用mv来实现文件或目录的重命名,即将文件或目录移动到“原位置”,但是名称却变了,如“mv /tmp/test.txt /tmp/linux_test.txt”就可以将test.txt重命名为linux_test.txt。
touch命令
touch 一个或多个文件或目录:如果文件不存在,则会创建一个或多个空白文件(多个空白文件使用空格隔开,如果文件名中含有空格,文件名需要使用双引号括起来,但建议不要使用空格来命名文件)。如果文件或目录已经存在,则会根据指定的选项修改文件的时间属性,如最后一次修改时间(这里没有列出相应的选项,需要时可自行查看)。
注意:新建的文件是没有执行权限的,所以如果新建的文件是脚本,则需要先赋予它执行权限才能执行这个脚本。
ln命令
ln [-s] 原文件 目标文件:生成链接文件(即目标文件,它指向原文件),默认生成硬链接文件。-s选项指定生成软链接文件。
软链接:类似Windows中的快捷方式,只是一个指向另一个文件的链接而已,并且Linux中的软链接文件的权限永远都是lrwxrwxrwx,以及大小都是固定的很小的字节数。
硬链接:硬链接的信息与原文件的信息都是一样的,并且其中一个文件更新后,硬链接文件也会同步更新,相当于cp -p命令再加上同步跟新的功能。之所以它能同步更新,是因为硬链接的i节点和原文件的i节点是相同的(而Linux就是通过i节点来识别不同的文件)。
软链接与硬链接的差别(或者说硬链接的特点):
- 硬链接是不能跨分区的。
- 硬链接是不能指向目录的。