文件与目录 编辑 请登陆,再编辑

前言

本页面介绍linux下的文件与目录管理。

文件

文件:是存储在某种长期储存设备或临时存储设备中的一段数据流,并且归属于计算机文件系统管理之下。文件类型可分:

文本文件,是由一些字符的串行组成的。

二进制文件,一般是指除了文本文件以外的文件。

文件扩展名是操作系统用来标志文类型的一种机制。通常来说,一个扩展名是跟在主文件名后面的,由一个分隔符分隔。

举例:“readme.txt”文件名中,readme是主文件名,txt为扩展名,表示这个文件被认为是一个纯文本文件。

注意:在Linux中,带有扩展名的文件,只能代表程序的关联,并不能说明文件是可以执行,从这方面来说,Linux的扩展名没有太大的意义。只要属性中有运行权限,那么就表示这个文件具有可以执行的权限,但是最终能不能成功运行,还得看文件的内容。

命名文件规则

在命名linux文件时,最好避免如下一些特殊字符:

*?<>;&![ ]|\‘”( ) { }

Linux中,每一个文件或目录命名最长可以达到255个字符,加上完整路径,最长可达4096个字符,文件名相当长。

可以采用[TAB]命令、文件名补全键来减少键盘输入量及输入差错。

文件名字前面有. 表示为隐藏文件。

例如“.linux.txt”为隐藏文件。

常见文件

1.软件包

DEB

DEB是Debian软件包格式,文件扩展名为.deb,跟Debian的命名一样,DEB也是因Debra Murdock(Debian创始人Ian Murdock的前妻)而得名。

Debian包是Unixar的标准归档,将包文件信息以及包内容,经过gzip和tar打包而成。 处理这些包的经典程序是dpkg,经常是通过apt来运作。 通过Alien工具,可以将deb包转换成其他形式的软件包。

安装DEB包软件只需要双击即可,非常方便。 DEB包为Debian系Linux系统软件安装包,Linux Deepin属于Debian系Linux。

RPM

RPM包管理员(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。

最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,但也有单独将RPM作为应用软件发行的发行版(例如Gentoo)。RPM仅适用于安装用RPM来打包的软件,目前是GNU/Linux下软件包资源最丰富的软件包类型。

安装RPM包软件只需要双击即可,非常方便。 RPM包为Red Hat系Linux系统软件安装包,只有属于Red Hat系的Linux系统才可以使用RPM包安装软件。

2.归档文件

上图的拓展名都为归档文件(压缩包)扩展名,需要用对应的软件解压或者提取。

3.库文件

Linux下的库有两种:静态库(.a)和共享库(.so)。

Linux下的静态库的名字一般为libxxxx.a,其中xxxx是该lib的名称。

Linux下的动态库的名字一般为libxxxx.so.major.minor,xxxx是该lib的名称,major是主版本号,minor是副版本号。

4.脚本

SH是脚本或者批处理文件(scripts)的文件扩展名,相当于Windows下的bat批处理,但linux下的脚本程序可比Windows下的bat批处理强大得多!

路径与目录

路径

路径:用户在磁盘上寻找文件时,所历经的文件夹线路叫路径。路径分有两种:

绝对路径:路径的写法一定由根目录 / 写起,例如: /usr/share/doc 这个目录。

相对路径:路径的写法不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成:

cd ../man 

这就是相对路径的写法,相对路径意指相对于目前工作目录的路径。

目录

目录:一个计算机系统中有成千上万个文件,为了便于对文件进行存取和管理,计算机系统建立文件的索引,即文件名和文件物理位置之间的映射关系,这种文件的索引称为文件目录。

在计算机或相关设备中,一个“目录”或“文件夹”就是一个装有数字文件系统的虚拟“容器”。在它里面保存着一组文件和其它一些目录。 一个典型的文件系统可能会包含成千上万个目录。多个文件通过存储在一个目录中,可以达到有组织的存储文件的目的。在一个目录中的另一个目录被称作它的子目录。这样,这些目录就构成了层次,或树形结构。

文件目录(file directory)为每个文件设立一个表目。文件目录表目至少要包含文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等内容。

注意

Linux下的文件名与目录严格区分大小写。

例如:abc.txt与abC.txt是完全不同的文件

管理方式

图形管理

使用系统自带的Nautilus文件管理器可以很便捷的实现我们日常的文件与目录管理。

使用File_Roller归档管理器可以轻松的实现文件与目录的压缩、解压缩、打包管理。

命令管理

cd

cd:变换工作目录至 DIR。

其中 dirName 表示法可是绝对路径,如"/home/sun/downloads",也可以是相对路径,如"./downloads"

若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。

~ 表示为 home directory 的意思,. 则是表示目前所在的目录,.. 则表示目前目录位置的上一层目录。

实例:

cd /usr/bin  #进入 /usr/bin/ 
cd .. #返回当前目录的上一级目录 
cd - #返回上一次所在的目录 
cd ~ #进入当前用户的宿主目录

pwd

pwd:打印出当前/活动目录的的绝对路径

实例:

pwd  #查看当前的工作目录。
默认的工作目录在~下。~是您的“家目录”,默认在/home/USERNAME

mkdir

mkdir:建立一个空目录

实例:

mkdir <DIR> #在当前目录下创建“DIR”文件夹

rmdir

rmdir:删除一个空的目录。如果所给出的目录不为空,则报错

实例:

rmdir <DIR> #移除空文件夹DIR

ls

ls:显示文件和目录内容

实例:

ls #列出当前目录文件(不包括隐含文件) 
ls -a #列出当前目录文件(包括隐含文件) 
ls -l #列出当前目录下文件的详细信息
ls -la #显示当前目录下所有文件和文件夹,包括隐藏文件,并显示文件详细信息

cp

cp:复制文件

实例:

cp FILE1 FILE2#将FILE1复制到FILE2,包含了复制和重命名两个结果。
cp test.text test2.text #将test1.text复制到同一目录下,并命名为test2.text
cp test.text /home/sun/ #将test.text复制到/home/sun文件夹下,保留原有文件名

mv

mv:移动文件或目录,或是更改文件或目录的名称。

实例:

mv FILE1 FILE2 #移动/重命名文件。规则与“cp”相同。

touch

touch:修改文件的时间戳记

实例:

touch FILE  #若FILE文件不存在,此命令创建空文件FILE;若FILE文件已存在,则更新“访问时间”“

more

more:在显示器上阅读文件的过滤器

实例:

more FILE  #显示文件内容。如果文件不是文本文档则不会显示内容,此时可以使用”bvi FILE“进行十六进制显示

head

head:显示文件的开头

实例:

head FILE  #显示文件的前10行
head -n 30 FILE  #显示文件的前30行</pre>

tail

tail:显示文件的结尾

实例:

 tail FILE  #显示文件的末10行
 tail -f FILE  #动态地显示文件的末10行。如果文件改变,则显示内容也即时改变。

rm

rm:移除文件或者目录

实例:

 rm <FILE>  #删除当前目录下的“FILE”文件
 rm -rf <DIR> #递归删除文件夹DIR,也就是删除DIR及其中的所有文件、文件夹。</pre>

tar

tar:打包文件

实例:

tar cf FILE.tar FILES #把一些文件打包,这将只打包不压缩
tar xf FILE.tar #解包文件
tar czf FILE.tar.gz FILES #打包文件并以gzip压缩
tar xzf FILE.tar.gz #解压缩并解包.tar.gz文件
tar cjf FILE.tar.bz2 FILES #打包文件并以bzip压缩,bzip压缩得到的文件比gzip更小
tar xjf FILE.tar.bz2 #解压缩并解包.tar.bz2文件

gizp

gizp:压缩文件

实例:

 gzip FILE #将文件压缩到gz格式
 gzip -d FILE.gz #解压缩gz文件。

find

find:查找文件

实例:

find DIR -name FILENAME #在指定的文件夹(不指定则为当前工作目录)下寻找特定名称的文件。
find / -name xorg.conf  #在系统的所有目录中寻找叫做”xorg.conf“的文件或文件夹
find /etc -name xorg.conf* #在/etc下的所有目录中寻找以”xorg.conf“开头的文件或文件夹

**ln××

ln:在文件之间建立连接

实例:

ln -s FILE LINK #创建文件LINK作为FILE的软链接。软链接只是一种快捷方式,当原文件改变地址时会失效
ln -s FILE LINK #同样也是软链接
ln FILE LINK #硬链接,源文件地址改变时链接不会失效,不能跨文件系统创建硬链接

grep

grep:搜索文件

实例:

grep PATTERN FILES #在文件中搜寻特定片段
grep -r PATTERN DIR #在文件夹中递归地寻找文件中的特定片段
COMMAND | grep PATTERN #在COMMAND的输出中寻找特定片段。
lspci | grep VGA   #在lspci的结果中搜寻带有VGA字样的行。

locate

locate:查询资料库

实例:

locate FILE #寻找特定名字的文件。
locate命令是从数据库中查询文件,因此很快,但是数据库每24小时才会生成一次,可能无法找到特别新的文件

whereis

whereis:定位特殊文件

实例:

 whereis BIN #显示BIN文件的位置。只会显示在$PATH里的可执行文件
 whereis whereis #显示whereis的位置
 which APP  #显示哪个软件会被默认执行

相关链接

维基百科:DEB

维基百科:RPM

51CTO:简要概括常见Linux文件扩展名

http://linux-wiki.cn:动态库(.so)

OKLinux:关于Linux系统文件扩展名含义的介绍

鸟哥私房菜:文件目录管理

鸟哥私房菜:文件压缩和打包