首页 > 代码库 > find cp文件夹

find cp文件夹

客户有个需求,要找到以他们的企业ID命名的文件夹里的所有文件,并且保留原先完整的路径,因为完整路径已经写到了数据库里。

1. 命令

# find /recdata/saas_ali/call -name 20001371 -type d | xargs -i cp -a --parents {}  /mobilehd

//上述命令表示为,查找名称为20001371的文件夹,并将其以保留完整路径的方式拷贝到移动硬盘挂载目录/mobilehd下。

// --parents为cp命令的参数,表示拷贝全路径。

 

2. 一般拷贝文件需要长时间运行,所以考虑到运行命令后终端经常被结束掉,导致拷贝被终止的情况,笔者有以下解决方法。

  - crontab计划任务,但是要注意精确到分时日月周的每一项或者及时删除和注释,防止重复执行,操作比较复杂。

  - at临时计划任务,操作简单。

  - nohup后台运行方式(推荐项),操作简单。

   linux下命令以‘&‘结尾的时候表示后台运行,但是当终端关闭后此程序将被终止,所以我们要使用nohup(当终端关闭后不挂起该命令)。

   所以我们将命令优化为:

   nohup find /recdata/saas_ali/call -name 20001371 -type d | xargs -i cp -a --parents {}  /mobilehd  &

   但是有个注意事项:

   有时候使用nohup会有问题,当把终端暴力关闭后,进程会自动被关闭。

   所以操作的时候使用以下顺序来确保进程不被中断。

   ① 输入命令:nohup find /recdata/saas_ali/call -name 20001371 -type d | xargs -i cp -a --parents {}  /mobilehd  &

   ②敲‘回车键‘

   ③输入exit退出终端

?

find cp文件夹