Linux中关于文件操作与管道的命令小结

今天刚学习了Linux下关于文件管理的命令,在这里做一个总结。

工具:CentOS 7.3

一、touch命令,功能:创建文件。用法:touch filename1 filename2... 创建文件名为filename1,filename2.....的命令。

Linux中关于文件操作与管道的命令小结

二、cp命令,功能:复制命令。用法:cp sourcename directory。将资源文件复制到directory目录下。

可分为以下情况。

Linux中关于文件操作与管道的命令小结

cp 
-i 覆盖前询问。
-n 不覆盖
-r -R 递归复制,用于目录的复制
-d 复制软链接属性
-p = --perserv=mode,owner,timestamp
-a 包含-dr --perserv=all
-f 当覆盖时,如目的文件的缺少写权限时,强制删除目的文件,并新建再填充内容。当有-n时,无效


三、mv命令,功能:实现文件的移动。

-i 覆盖前提示
-f 不提示,强制覆盖,抵消-i的作用

Linux中关于文件操作与管道的命令小结Linux中关于文件操作与管道的命令小结

注意:如果被复制的文件与目标文件所在目录相同,则实现文件的重命名。

Linux中关于文件操作与管道的命令小结

四、rm命令,实现文件的删除。

-i 覆盖前提示
-f 不提示,强制覆盖,抵消-i的作用
-r 如果被删除的文件为目录,则递归删除该目录下的所有内容。

Linux中关于文件操作与管道的命令小结

注意:如果执行以root用户执行在/目录下执行rm -rf *则会删除系统中近乎所有的文件(正在运行的文件除外)。这是一个很危险的命令。

五、mkdir命令,功能:创建目录。

-p 递归创建
-m mode 创建时指定权限 

Linux中关于文件操作与管道的命令小结

Linux中关于文件操作与管道的命令小结

六、rmdir删除空目录。此目录只能删除空目录,不能删除有内容的目录。

-p 递归删除空目录

Linux中关于文件操作与管道的命令小结

重定向基础知识:程序的运行离不开数据,那么程序是如何获得数据和输出数据的呢?在Linux之中,提供了三种标准的输入输出设备,对应关系如下:

标准输入(standinput) -0 默认接受来自键盘的输入。

标准输出(standoutput) -1 默认输出到终端窗口。

标准错误(standerror) -2 默认输出到终端窗口。

但是,Linux提供了可以重定向的方法,可以改变默认的位置。

七、使用符号‘>’,将输出重定向到文件。其中1>表示重定向正确信息,2>表示重定向错误信息。

Linux中关于文件操作与管道的命令小结

还可以使用符号‘2>’将两个标准输出合并。

Linux中关于文件操作与管道的命令小结

注意:前面的符号‘>’在导入时是将文件中的之前的内容覆盖掉,如果不进行覆盖,只进行追加,需要使用符号‘>>’。

八、使用<来重定向标准输入

由于后面要用到tr命令,所以在此处简要描述。

tr转换和删除字符
tr[OPTION]... SET1 [SET2]
选项:
-c–C --complement:取字符集的补集
-d--delete:删除所有属于第一字符集的字符
-s--squeeze-repeats:把连续重复的字符以单独一个字符表示
-t--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
[:alnum:]:字母和数字[:alpha:]:字母[:cntrl:]:控制(非打印)字符[:digit:]:数字[:graph:]:图形字符[:lower:]:小写字母[:print:]:可打印字符[:punct:]:标点符号[:space:]:空白字符[:upper:]:大写字母[:xdigit:]:十六进制字符

Linux中关于文件操作与管道的命令小结


九、管道符 |

管道(使用符号“|”表示)用来连接命令,格式为:命令1 | 命令2 | 命令3 | …可以将上一个命令的标注输出传递到下一条命令作为参数(从左至右)。

Linux中关于文件操作与管道的命令小结

接下来使用管道符实现计算1+2+3+..+99+100的总和。

Linux中关于文件操作与管道的命令小结

其中,命令echo {1..100}实现输出1 到 100 的数字;命令echo {1..100} | tr ' ' '+' 实现将数字之间的间隔符空格转换成符号‘+’;命令echo {1..100} | tr ' ' '+' | bc实现将1+2+3+...+100作为参数通过管道符传递给bc(计算器)作为参数进行计算。


到这里相信你对基本的文件操作有了认识。再见。