求一个shell脚本:功能是将指定目录下所有文件夹和各文件夹中的*.h文件拷贝到指定目录

求一个shell脚本:功能是将指定目录下所有文件夹和各文件夹中的*.h文件拷贝到指定目录,第1张

find src_dir -name "*.h" -exec cp {} dst_dir \肢让

或者察数

find src_dir -name "*.h"历没局 |xargs -i cp {} dst_dir

test -e filename

返回0则存在,返回1则不存在。

或者

if [ -e $filename ]

空格很关键,注意哦。

判断文件的参数如下,本人自己整理的。

-e 文件存谈宽在

-f file 是一个 regular 文件(不是目录或者设备文件)

-s 文件长度不为 0

-d 文件是个目录

-b 文件是个块设备(软盘,cdrom 等等)

-c 文件是个字符设备(键盘,modem,声卡等等)

-p 文件含桐亮是个管道

-h 文件是个符号链接

-L 文件是个符号链接

-S 文件是个 socket

-t 关联到一个终端设备的文件描述符 这个选项一般都用来检测是否在一个给定脚本中的 stdin[-t0]或[-t1]是一个终端

-r 文件具有读权轮耐限(对于用户运行这个 test)

-w 文件具有写权限(对于用户运行这个 test)

-x 文件具有执行权限(对于用户运行这个 test)

一 分析

shell启动一个程序,包括以下几步:

1)从用户读入指令字符串

2)shell建立一个新进程

3)在新进程中运行指令并等待进程结束

用户如何读入指令我们就山丛链不在此探讨了,这里主要探讨如何在一个程序里启动另一个程序。

二 一个程序如何运行另一个程序

1 使用execvp函数来启动另一个程序

execvp()函数

找到指定路径的文件并执行该文件

头文件:#include<逗孙unistd.h>

函数原型:int execvp(const char *file ,char * const argv [])

参数:file可执行文件的路径+文件名

 郑袜argv 参数组

返回值: 若函数执行成功则不会返回,若执行失败就直接返回-1


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/12263380.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存