1.Linux 下存在5种文件类型
1.普通文件
2.目录
3.字符设备文件
4.块设备文件
5.符号链接文件
3.寻找文件
find pathname -options [-print -exec -ok ...]
pathname 要查找的路径
-print find 命令将匹配的文件输出到标准输出
-exec find 命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为 'command' {}\; 注意 {} 和 \; 之间的空格
-ok 和 -exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令
例子:
find /etc -iname "*rc" -exec cp {} /tmp/rcfile/ \;
4.遍历文件
在使用find命令的 -exec 选项处理匹配到的文件时,find 命令将所有匹配到的文件一起传递给 exec 执行。但有些系统对 exec 命令的长度有限制,
这样在 find 命令运行几分钟以后,就会出现溢出错误。这就是 xargs 命令的用户所在。
find 命令把匹配到的文件传递给 xargs 命令,而 xargs 命令每次只获取文件的一部分而不是全部,不像 -exec 那样。它可以先处理最先获取的一部分文件,
然后是下一批,并如此继续下去。
有些系统中,使用 -exec 选项会为每一个匹配到的文件发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;这样就会出现很多进程。而使用 xargs
只有一个进程。
//使用 xargs 命令来测试它们分别属于哪类文件
find /tmp -type f -print | xargs file
//用 grep 命令在 /etc 目录下的所有文件中查找 namserver 这个单词
find /etc -type f | xargs grep 'nameserver'
5.文件系统
1.文件系统与磁盘分区
我们通常将文件系统认为是磁盘分区,Linux 中的基本文件存储单元都是磁盘分区,即将一个或者多个硬盘进行逻辑分区,操作系统将每个逻辑分区视为独立的磁盘。
Linux 将这些磁盘分区视为设备处理,进而通过 /dev 目录中的特殊文件使用文件IO机制。
有2种类型的设备文件:块设备和字符设备。两者之间的一个重要差别是,块设备被缓冲,而字符设备因为没有文件管理,所以不被缓冲。
操作系统为了有效的和磁盘打交道,将磁盘的存储方式按照一定的规则统一起来。这种规则规定了文件是怎么样被映射进磁盘的分区磁道中的;规定了当没有足够连续
的磁道存储大文件时,是怎么样通过多个不连续的磁道拼接容纳文件的,等等。这个规则就叫做文件管理系统,或者叫做磁盘分区格式。