[Linux]文件系统_类型_操作命令

Linux文件系统,文件类型与文件操作命令

Linux文件系统

  • 在Linux系统下,系统根目录为/,可在终端中输入指令查看根目录下的具体文件。
cd /   #进入到根目录
ls   #查看根目录下的文件以及文件夹
  • 根目录/下有如下重要的文件夹
文件夹 功能
/bin 存储一些二进制可执行命令文件, /usr/bin 也存放了一些基于用户的命令文件
/sbin 存储了很多系统命令, /usr/sbin 也存储了许多系统命令
/root 超级用户 root 的根目录文件
/home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹
/boot 存放 Ubuntu 系统内核和系统启动文件
/mnt 通常包括系统引导后被挂载的文件系统的挂载点
/dev 存放设备文件
/etc 保存系统管理所需的配置文件和目录
/lib 保存系统程序运行所需的库文件, /usr/lib 下存放了一些用于普通用户的库文件
/lost+found 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件
/var 存储一些不断变化的文件,比如日志文件
/usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件
/media 存放 Ubuntu 系统自动挂载的设备文件
/proc 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息
/tmp 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限
/opt 可选文件和程序的存放目录
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息
  • Linux是一个支持多用户的操作系统,系统还会为每一个用户创建一个用户根目录。每创建一个新用户,系统就会在/home文件夹下,创建一个以用户名命名的文件夹,这个文件夹就是用户的根目录,如/home/zzh

文件类型

  • 在用户的根目录下,使用命令ls -l,可以查看到所有文件的详细信息。
  • 在图中,每个文件详细信息的第一个字符,标记了当前文件的文件类型,不同字符所表示的文件类型如下:
标识符 文件类型
- 普通文件,一些应用程序创建的,比如文档、图片、音乐等
d 目录文件
c 字符设备文件, Linux 驱动里面的字符设备驱动,比如串口设备等
b 块设备文件,存储设备驱动,比如硬盘, U 盘等
l 符号连接文件,相当于 Windwos 下的快捷方式
s 套接字文件
p 管道文件,主要指 FIFO 文件

文件操作指令

文件的创建与删除

创建新文件(touch)

  • 使用touch命令,可以创建各种类型的文件。命令格式如下:
touch  [选项参数]]  [文件名]
  • 使用 touch 创建文件的时候,如果[文件名]的文件不存在,那就直接创建一个以[文件名]命
    名的文件,如果[文件名]文件存在的话就仅仅修改一下此文件的最后修改日期。
  • 命令的主要选项如下:
选项 功能
-a 只更改存取时间
-c 不建立任何文件
-d<日期> 使用指定的日期,而并非现在日期
-t<时间> 使用指定的时间,而并非现在时间

文件夹创建(mkdir)

  • 建文件夹使用命令mkdir,命令格式如下:
mkdir [选项参数]] [文件夹名目录名]
  • 命令的主要选项如下:
选项 功能
-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录

文件及目录删除(rm)

  • rm命令可以完成一个文件的删除或者多个文件及文件夹的删除,它可以实现递归删除。命令格式如下:
rm [选项参数]] [目的文件或文件夹目录名]
  • 命令的主要选项如下:
选项 功能
-d 直接把要删除的目录的硬连接数据删成 0,删除该目录
-f 强制删除文件和文件夹(目录)
-i 删除文件或者文件夹(目录)之前先询问用户
-r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉
-v 显示删除过程
  • 当我们需要使用rm命令删除一个文件夹下的所以文件和子文件夹时,需要加入选项参数-rf,具体指令如下:
rm -rf dir

文件夹目录删除(rmdir)

  • Linux还提供了直接删除文件夹目录的命令:rmdir,它可以不加任何参数的删除掉指定的文件夹(目录),命令格式如下:
rmdir [选项参数]] [文件夹(目录)]
  • 命令的主要选项如下:
选项 功能
-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录

文件的复制与移动

文件复制(cp)

  • Linux 下的复制命令为cp,具体指令如下:
cp [选项参数]] [源地址] [目的地址]
  • 命令的主要选项如下:
选项 功能
-a 此参数和同时指定“-dpr”参数相同
-d 在复制有符号连接的文件时,保留原始的连接
-f 强行复制文件,不管要复制的文件是否已经存在于目标目录
-I 覆盖现有文件之前询问用户
-p 保留源文件或者目录的属性
-r 或-R 递归处理,将指定目录下的文件及子目录一并处理

文件移动(mv)

  • 有时候我们需要将一个文件或者文件夹移动到另外一个地方去,或者给一个文件或者文件
    夹进行重命名,这个时候我们就可以使用mv命令。命令格式如下:
mv [选项参数]] [源地址] [目的地址]
  • 命令的主要选项如下:
选项 功能
-b 如果要覆盖文件的话覆盖前先进行备份
-f 若目标文件或目录与现在的文件重复,直接覆盖目的文件或目录
-I 在覆盖之前询问用户

文件的压缩与解压缩

zip压缩(zip)

  • zip 命令用于将一个或者多个文件压缩成一个.zip 结尾的文件。命令格式如下:
zip [选项参数]] [压缩文件名.zip] [被压缩的文件]
  • 命令的主要选项如下:
选项 功能
-b<工作目录> 指定暂时存放文件的目录
-d 从 zip 文件中删除一个文件
-F 尝试修复已经损毁的压缩文件
-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件
-h 帮助
-j 只保存文件的名,不保存目录
-m 压缩完成以后删除源文件
-n<字尾符号> 不压缩特定扩展名的文件
-q 不显示压缩命令执行过程
-r 递归压缩,将指定目录下的所有文件和子目录一起压缩
-v 显示指令执行过程
-num 压缩率,为 1~9 的数值

zip解压缩(unzip)

  • unzip 命令用于对.zip 格式的压缩包进行解压。命令格式如下:
unzip [选项参数]] [压缩文件名.zip]
  • 命令的主要选项如下:
选项 功能
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否损坏,但不解压
-v 显示命令显示的执行过程
-Z 只显示压缩文件的注解
-C 压缩文件中的文件名称区分大小写
-j 不处理压缩文件中的原有目录路径
-L 将压缩文件中的全部文件名改为小写
-n 解压缩时不要覆盖原有文件
-P<密码> 解压密码
-q 静默执行,不显示任何信息
-x<文件列表> 指定不要处理.zip 中的哪些文件
-d <目录> 把压缩文件解到指定目录下

其他格式的压缩与解压缩(tar)

  • zip 和 unzip 这两个是命令只适用于.zip 格式的压缩和解压,其它格式的压缩和解压使用命令
    tar, tar 将压缩和解压缩集合在一起,使用不同的选项参数即可。命令格式如下:
tar [选项参数] [压缩文件名] [被压缩文件名]
  • 命令的主要选项如下:
选项 功能
-c 创建新的压缩文件
-C<目的目录> 切换到指定的目录
-f<备份文件> 指定压缩文件
-j 用 tar 生成压缩文件,然后用 bzip2 进行压缩
-k 解开备份文件时,不覆盖已有的文件
-m 还原文件时,不变更文件的更改时间
-r 新增文件到已存在的备份文件的结尾部分
-t 列出备份文件内容
-v 显示指令执行过程
-w 遭遇问题时先询问用户
-x 从备份文件中释放文件,也就是解压缩文件
-z 用 tar 生成压缩文件,用 gzip 压缩
-Z 用 tar 生成压缩文件,用 compress 压缩
  • 例如,我们可使用如下两个命令分别将test文件夹压缩为.bz2.gz格式:
tar  -vcjf   test.tar.bz2   test  #压缩为.bz2
tar  -vczf   test.tar.gz   test   #压缩为.gz

文件的查找

文件查找(find)

  • find命令用于在目录结构中查找与关键信息相匹配的文件。其命令格式如下:
find  [路径]  [选项参数]  [匹配信息]
  • 命令的主要选项如下:
选项 功能
-name 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符
-depth 从指定目录下的最深层的子目录开始查找
-gid<群组识别码> 查找符合指定的群组识别码的文件或目录
-group<群组名称> 查找符合指定的群组名称的文件或目录
-size<文件大小> 查找符合指定文件大小的文件
-type<文件类型> 查找符合指定文件类型的文件
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录

文件内容查找(grep)

  • find命令用于在目录中搜索文件,我们有时候需要在文件中搜索一串关键字, grep就是完
    成这个功能的。grep命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字,grep命令就会把包含指定关键字的这一行标记出来。grep命令格式如下:
grep [选项参数] [关键字] [文件列表]
  • grep 命令一次只能查一个关键字,命令的主要选项如下:
选项 功能
-b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号
-c 计算符合关键字的列数
-i 忽略字符大小写
-v 反转查找,只显示不匹配的行
-r 在指定目录中递归查找

参考:
《正点原子-嵌入式Linux驱动开发指南》- 第二章 Ubuntu系统入门 - 2.6 Linux文件系统