Shell 编程-常见的文件处理命令
Posted 视野
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell 编程-常见的文件处理命令相关的知识,希望对你有一定的参考价值。
touch 命令
touch命令用于创建空文件,例如有时应用程序希望在它们写入数据之前,某个日志文件就已经存在。这时可用touch命令创建一个空文件:touch test1
;
touch命令还可以用来改变已有文件的访问时间和修改时间,而不改变文件内容,例如已存在test1
文件,再次执行touch test1
时,文件的创建时间就会为当前时间,-t
参数后跟时间戳则可以将文件的创建时间改成指定时间;
cp 命令
此命令用以复制文件或者目录,cp命令需要两个参数,源对象和目标对象,最基本的用法为:cp source destination
当source
和destination
都为文件时,新文件以destination
命名,source
和destination
也都可为目录文件
着重介绍cp命令的几个常用参数:
- -p:为目标文件保留源文件的访问时间和修改时间
- -v:详细模式,解释复制过程中发生了什么(可用于shell程序日志记录)
- -r:递归复制,用于复制目录时及其子目录
- -b:创建备份,而不覆盖
- -f:强制覆盖,无需询问
mv 命令
mv即为moving,用来将文件和目录移动到另外一个位置,基本用法为:mv source destination
可用mv命令进行文件重命名,将destination
改为新的名字就好
注意,移动一个有软连接指向的文件会使得软连接文件失效
rm命令
rm命令用于删除文件,在rm后跟文件或者目录名即可
- -i:在删除文件前进行询问确认
- -r:递归删除目录文件及其子目录
- -f:强制性删除文件,不进行任何询问(例如删除拥有git仓库的文件)
注意,因为rm命令不是将文件回收垃圾站,而是彻底消失,在执行
rm -rf destination
这个命令时务必小心谨慎,轻则几天的心血付之东流,重则你正在使用的系统全部被删干净
本人借鉴网络上前辈的处理经验,附上删除至回收站代码(在.zshrc文件中添加)alias rmtrash=trash alias lltrash=‘ll /.Trash’ trash() { mv -v [email protected] /.Trash/ }
这种情况下可以执行rmtrash
命令代替rm
命令,lltrash
命令查看垃圾箱中的文件
mkdir 命令
创建目录命令,-p参数用于递归创建
file 命令
查看文件类型命令
File命令将文件分成3类
- 文本文件:包含可打印字符的文件
- 可执行文件:可在系统上运行的文件
- 数据文件:包含不可打印二进制字符,又不能在系统上运行的文件
查看整个文件
- cat命令
cat命令就是简单的将文件的内容全部显示出来,理解很简单,介绍下几个参数- -n:给显示的内容加上行号
- -b:只给有文本的行添加行号
- -s:将多个空白行压缩到单个空白行
- more命令
cat命令的缺陷是,一旦运行了cat命令,则对于内容非常多的文件,将会持续打印直到完成,这样在打印的过程中将无法进行其他的命令,除非强制退出当前命令。为了解决这个问题,开发人员编写了more命令。more命令会显示文本文件的内容,但是会在显示每页数据之后停下来,等待操作人员输入命令来进行后续活动。 - less命令
less命令的命名实际上是个文字游戏—“less is more”,应该说查看文件内容就用less命令,不会将文件内容打印到终端,并且支持许多命令还有方向键查看文件内容,这样在查看文件内容时你就有完全控制权了。
查看部分文件
- head命令
显示文件开头几行的内容,默认显示10行,可以大致知道文件的内容而不用加载全部文件。参数与tail命令差不多,接下来着重介绍tail命令 - tail命令
tail命令会显示文件末尾部分的内容。默认情况也是显示文件的末尾10行,也可跟参数控制- -c bytes:显示文件最后的bytes个字节的字符
- -n lines:显示文件最后的lines行
- -f:让tail程序一直保持活动状态,如果有新的内容则在文件的末尾显示出来
- -pid=PID:和-f参数一起,跟踪一个文件直到ID为PID的进程结束
- -s sec:和-f参数一起,在每次循环输出之间休眠sec秒
-f参数是tail命令的一个突出的特性,它允许你在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态并不断地显示添加到文件中的内容。是实时监测系统日志的绝妙方式。
以上是关于Shell 编程-常见的文件处理命令的主要内容,如果未能解决你的问题,请参考以下文章