在bash下:
代码: 全选
find . > 1.txt
然后换一个方法:
代码: 全选
find . -exec echo {} > 1.txt \;
代码: 全选
find . > 1.txt
代码: 全选
find . -exec echo {} > 1.txt \;
代码: 全选
$ echo "`find .`" > 1.txt
里面可没有说什么一次性把结果全部交给command,相反红字部分还专门说明了是逐个文件处理的-exec command ;
Execute command; true if 0 status is returned. All following
arguments to find are taken to be arguments to the command until
an argument consisting of `;' is encountered. The string `{}'
is replaced by the current file name being processed everywhere
it occurs in the arguments to the command, not just in arguments
where it is alone, as in some versions of find. Both of these
constructions might need to be escaped (with a `\') or quoted to
protect them from expansion by the shell. See the EXAMPLES
section for examples of the use of the -exec option. The
specified command is run once for each matched file. The
command is executed in the starting directory. There are
unavoidable security problems surrounding use of the -exec
action; you should use the -execdir option instead.
代码: 全选
find . -exec echo {} > 1.txt \;
代码: 全选
find . -exec echo {} \; > 1.txt
代码: 全选
echo "123" >1.txt "234"
>2.txt echo "123"
这个倒是可以把多个结果(不一定是全部,视文件名总长度和find内部缓冲区大小而定)一次性传给command,不过这种写法本身限制太多,一般不怎么用-exec command {} +
This variant of the -exec action runs the specified command on
the selected files, but the command line is built by appending
each selected file name at the end; the total number of
invocations of the command will be much less than the number of
matched files. The command line is built in much the same way
that xargs builds its command lines. Only one instance of `{}'
is allowed within the command. The command is executed in the
starting directory.
代码: 全选
find -exec bash -c '> 1.txt' echo {} +