本帖最后由 jueljust 于 2012-04-12 14:00 编辑 我想在find出来的结果上执行[code]ls -l --color {}; file {}[/code]或者[code]ls -l --color {} && file {}[/code]应该怎么写 如果exec上不支持 ; && || 之類的,麻煩大家告知一下
本帖最后由 fallingstar64 于 2012-02-23 22:00 编辑 引用自 http://perldoc.perl.org/functions/exec.html @args = ( "echo surprise" ); exec @args; # subject to shell escapes # if @args == 1 exec { $args[0] } @args; # safe even with one-arg list 为什么说 exec { $args[0] } @args; 是更为安全的一种用法呢???
读如下脚本后,对exec的疑问 start) echo -n "Starting svscan: " exec env - PATH="/usr/local/bin:/usr/bin:/bin" SVDIR="$SVDIR" \ csh -cf 'svscan $SVDIR &; echo $! > /var/run/svscan.pid' RETVAL=$? # Sorry, I don't catch exit code of svscan. echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/svscan ;; exec env - PATH="/usr/local/bin:/usr/bin:/...
-exec 必须由一个 ; 结束,而因为通常 shell 都会对 ; 进行处理,所以用 \; 防止这种情况。 {} 可能需要写做 '{}',也是为了避免被 shell 过滤 find ./ -type f -exec grep iceskysl {} /dev/null \; ./表示从当前目录找 -type f,表示只找file,文件类型的,目录和其他字节啥的不要 -exec 把find到的文件名作为参数传递给后面的命令行,代替{}的部分 -exec后便跟的命令行,必须用“ \;”结束 #find ./ -type f -name "*.cpp"...
#include unsitd.h> int execl( const char *pathname, const char *arg 0, ... /* (char *) 0 */); int execv( const char *pathname, const char *rgv[] ); int execle(const char *pathname,const char *arg 0, /* (char *)0, char *cones nt v p [] */); int execve(const char *pathname,const char *rgv[], char *consten vp [] ); int execlp(const char *filename,const char *arg 0, ... /* (char *) 0 */); int execv...
The problem is not one of recursion limit, but one of (in)efficiency. It is much more efficient to use find | xargs than find -exec {} \; "find ... -exec command {} \;" runs the command once for each name. If find identifies 10000 files, using -exec grep ... as an example, find would fork off a child copy of itself, the copy would become a grep working on a single file. Meanwhile the original par...
本文主要参考《unix环境高级编程》 一个创建子进程后,子进程都会调用exec函数执行另一个程序。 exec只是用一个全新的程序代替当前进程的正文,数据,堆和栈段。 一共有6种exec函数,关系可以用下图表示: 字母p表示该函数取filename作为参数,并且用PATH环境变量寻找可执行文件。字母l表示该函数取一个参数表,他与字母v互斥。v表示该函数取一个argv【】矢量。字母e表示该函数取envp【】数组,而不使用当前环境。 下面是调用...
EXEC(3) Linux Programmer's Manual EXEC(3) NAME execl, execlp, execle, execv, execvp - execute a file SYNOPSIS #include extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const...