我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

sh/bash/dash/ksh/zsh等Shell脚本
回复
zhubaotian
帖子: 32
注册时间: 2010-08-22 12:16

我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#1

帖子 zhubaotian » 2011-10-17 20:33

我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里
find /home -name "*.c" -print
该怎么写呢?
先谢谢大家
头像
qiang_liu8183
论坛版主
帖子: 10701
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#2

帖子 qiang_liu8183 » 2011-10-17 20:41

代码: 全选

cp `find /home -name *.c` "PATH"
干不了大事就把小事干的大气点
onlylove
论坛版主
帖子: 5371
注册时间: 2007-01-14 16:23

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#3

帖子 onlylove » 2011-10-17 21:07

把cp命令换成mv的话就是移动了,楼上是复制命令
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
头像
xkz1986
帖子: 153
注册时间: 2011-06-16 20:48

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#4

帖子 xkz1986 » 2011-10-17 21:35

find /home -name *.c -exec cp {} 目标文件夹 \;
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#5

帖子 lilydjwg » 2011-10-17 22:50

代码: 全选

cp /home/**/*.c some_place
zsh 有效。
zhubaotian
帖子: 32
注册时间: 2010-08-22 12:16

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#6

帖子 zhubaotian » 2011-10-19 21:08

qiang_liu8183 写了:

代码: 全选

cp `find /home -name *.c` "PATH"

代码: 全选

[root@localhost ~]# cp "find /home -name "*.c""  /myc
cp: 无法 stat “find /home -name *.c”: 没有那个文件或目录
[root@localhost ~]# cp 'find /home -name "*.c"'  /myc
cp: 无法 stat “find /home -name "*.c"”: 没有那个文件或目录
zhubaotian
帖子: 32
注册时间: 2010-08-22 12:16

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#7

帖子 zhubaotian » 2011-10-19 21:10

xkz1986 写了:find /home -name *.c -exec cp {} 目标文件夹 \;
谢谢 不知道 -exec 后面是什么意思
头像
rackingroll
帖子: 36
注册时间: 2011-03-14 17:47

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#8

帖子 rackingroll » 2011-10-19 21:29

zhubaotian 写了:
qiang_liu8183 写了:

代码: 全选

cp `find /home -name *.c` "PATH"

代码: 全选

[root@localhost ~]# cp "find /home -name "*.c""  /myc
cp: 无法 stat “find /home -name *.c”: 没有那个文件或目录
[root@localhost ~]# cp 'find /home -name "*.c"'  /myc
cp: 无法 stat “find /home -name "*.c"”: 没有那个文件或目录
哥们命理些错了,应该是

代码: 全选

cp `find /home -name "*.c"`  /myc
而不是

代码: 全选

cp "find /home -name "*.c""  /myc
或者

代码: 全选

cp 'find /home -name "*.c"'  /myc
php , 互联网,90后 ,linux ,lamp
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#9

帖子 枫叶饭团 » 2011-10-19 21:43

zhubaotian 写了:
xkz1986 写了:find /home -name *.c -exec cp {} 目标文件夹 \;
谢谢 不知道 -exec 后面是什么意思
cp复制。。。
头像
xkz1986
帖子: 153
注册时间: 2011-06-16 20:48

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#10

帖子 xkz1986 » 2011-10-19 22:47

zhubaotian 写了:
xkz1986 写了:find /home -name *.c -exec cp {} 目标文件夹 \;
谢谢 不知道 -exec 后面是什么意思
-exec 是find的参数,表示对找到的文件执行后面的命令;
cp就是copy了;
{} 代表找到的文件;
目标文件夹就是目标文件夹了;
至于\;我也不知道,只知道一定要加上 :em01
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#11

帖子 hellojinjie » 2011-10-20 19:05

rackingroll 写了:
zhubaotian 写了:
qiang_liu8183 写了:

代码: 全选

cp `find /home -name *.c` "PATH"

代码: 全选

[root@localhost ~]# cp "find /home -name "*.c""  /myc
cp: 无法 stat “find /home -name *.c”: 没有那个文件或目录
[root@localhost ~]# cp 'find /home -name "*.c"'  /myc
cp: 无法 stat “find /home -name "*.c"”: 没有那个文件或目录
哥们命理些错了,应该是

代码: 全选

cp `find /home -name "*.c"`  /myc
而不是

代码: 全选

cp "find /home -name "*.c""  /myc
或者

代码: 全选

cp 'find /home -name "*.c"'  /myc
OR this one:

代码: 全选

cp $(find /home -name "*.c")  /myc
Say hello to everyday!
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#12

帖子 hellojinjie » 2011-10-20 19:08

xkz1986 写了:
zhubaotian 写了:
xkz1986 写了:find /home -name *.c -exec cp {} 目标文件夹 \;
谢谢 不知道 -exec 后面是什么意思
-exec 是find的参数,表示对找到的文件执行后面的命令;
cp就是copy了;
{} 代表找到的文件;
目标文件夹就是目标文件夹了;
至于\;我也不知道,只知道一定要加上 :em01
Both of these constructions might need to be escaped (with a `\') or quoted to protect them from expansion by the shell.
Say hello to everyday!
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 我用find找到了home下的.c文件 怎么全部拷贝到一个文件夹里

#13

帖子 tusooa » 2011-10-23 11:33

find /home -name '*.c' -type f -exec echo cp -v '{}' somewhere/ ';'
要不连目录,也可能拷过去的。要是改mv的话,会出错。
另外建议别都cp到一个地方,容易混乱。还有那cp过去的地方,最好别在/home下。

代码: 全选

] ls -ld //
回复