Linux下用find查找并复制指定文件到指定目录下

目录

1.创建目录

2. find按文件名查找

4.cp复制文件

3. xargs

4.exec

*xargs与exec的区别


面试遇到的题目:

    Linux下用find查找当前目录的.a文件,并复制指定文件到\tmp\aout目录下。

提供两种方法:

mkdir -p /tmp/aout  && find ./ -name *.a | xargs cp -t /tmp/aout
mkdir -p /tmp/aout  && find ./ -name "*.a" -exec cp {} /tmp/aout \;

下面是部分解释。

1.创建目录

mkdir -p /tmp/aout :递归创建目录,即使上级目录不存在,会按目录层级自动创建目录

2. find按文件名查找

 find -name *.a

4.cp复制文件

cp -t src dst :将多个文件复制到目录

3. xargs

xargs [OPTION]... COMMAND [INITIAL-ARGS]...:将前一个命令的标准输出传递给下一个命令,作为它的参数。

4.-exec

-exec command {} 

-exec是find提供的action,{} 代表查找出来的文件,; 代表结束符,用\做转义

*xargs与exec的区别

  • exec参数是一个一个传递的,传递一个参数执行一次命令;xargs一次将参数传给命令,可以使用-n控制参数个数
  •  exec文件名有空格等特殊字符也能处理;xargs不能处理特殊文件名,如果想处理特殊文件名需要特殊处理

扩展参考:linux xargs命令的使用及其与exec、管道的区别

你可能感兴趣的:(嵌入式,linux,shell,嵌入式)