一:确定文件类型
使用file命令可以确定文件的类型。在Linux中文件的扩展名(后缀)并不能道标文件的类型,因此在你打开一个文件之前,需要确定这个文件的类型。对于长度为0的文件file命令将识别为空文件。
格式: file [选项] 文件名或者目录名
file命令常见的选项如下表:
选项 | 说明 |
-b | 显示文件的类型信息,不显示文件的名称 |
-L | 显示符号链接所指向文件的类型 |
-z | 显示压缩文件的信息 |
-v | 显示版本信息 |
-c | 显示详细的指令过程 |
一般情况下,我们相查看一个文件或目录的类型,直接使用file命令指定文件名或者目录名即可,结果会显示这个文件的具体类型。
演示截图如下:
上图是查看根目录/bin 和其目录下的apg文件。显示/bin是symblic link to usr/bin。apg是POSIX shell script, ASCII text executable。
二:重定向
重定向对于数据的存储很有用。在下面,我们先介绍几个名词。
- 标准输入:接收输入的命令信息。
- 标准输出:正确执行命令后返回的信息。
- 标准错误输出:执行错误命令后返回的错误信息。
通常情况下,标准输入指向键盘,标准输出指向显示器。控制从何处接收输入以及在何处执行输出的功能称为输入/输出控制(I/O控制),通过数据流控制输入和输出。
所有处理文件内容的命令都是从标准输入读入数据,并将输出结果写到标准输出。
下面来进行一下演示:
上面演示的是ls明令就是标准输入,ls命令的返回结果是正确的,下一行就是标准输出。你再看执行ls file1时,由于桌面下不存在file1,执行结果有错误提示,这就是标准错误输出,
重定向就是把数据重新定向存储到其他的地方。
- 输入重定向(<或<<): 可以让程序从一个文件中获取输入,也就是将原本可以从键盘输入的数据改成由文件内容替换。<<表示结束输入的字符,在输入结束之后,输入<<右侧的字符会结束这次的输入。
- 输出重定向:(>或>>): 用于把程序的输出转移到另外一个地方。如果输出重定向的文件不存在,那么输出重定向符号>会建立这个文件;如果文件存在,就会删除原来文件中的内容,用新内容来替代。在保留原来文件内容得基础上添加内容,可以使用>>,这种方式会在原文件的内容的后面添加新的内容。
shell创建的进程都会和文件描述符打交道,这个文件描述符是一个非负整数,是Linux系统内部使用的一个文件代号。文件描述符可以决定从哪里读入命令所需的输入和将命令产生的输出及错误显示送到什么地方。其中标准输入的文件描述编号是0,标准输出是1,标准错误输出是2.
三:重定向的例子
(1)将当前目录下的文件列表存储到文件中。执行ls >file4可以将当前test1下的所有文件和子目录存储到文件当中,这种方式和ls > file1的结果相同。
(2) 在文件ile4中追加了新内容,如下图演示所示:。执行ls /bin>>file4可以将/bin目录下的文件和子目录添加到文件file4中并保存,使用>>之后会在原来内容的基础上添加新的内容。
(3) 将标准输出和标准错误输出都会存储在同一个文件中,如下面所示:这种情况就要借助特殊符号来实现效果了,可以使用&>或者>&。执行ls FileA file2 &>file5,标准输出和错误输出都会存储在文件file5中。由于文件fileA不存在,所以会产生标准错误输出。
标签:文件,重定向,输出,管理文件,标准,ls,Ubuntu,目录,输入 From: https://blog.51cto.com/u_15912723/7122394