首页 新闻 会员 周边 捐助

如何用shell脚本只复制目标夹中已存在的文件

0
悬赏园豆:100 [已解决问题] 解决于 2015-06-19 10:44

在Mac上如何用.sh脚本完成如下的文件复制操作。

目标文件夹中以System.开头的dll文件

源文件中对应目标文件夹中的dll文件在子文件夹。

请问如何用shell脚本从源文件夹复制目标已经存在的.dll文件?

问题补充:

用rsync命令也许是更简单的解决方法

dudu的主页 dudu | 高人七级 | 园豆:30778
提问于:2015-05-31 15:21
< >
分享
最佳答案
0
find 源目录 -name *.dll -exec sh -c 'fn=`basename $1`; if [ -e 目标目录/$fn ]; then cp $1 目标目录/$fn; fi' - {} \;
收获园豆:70
Uteki | 小虾三级 |园豆:573 | 2015-06-01 14:35

照着这个写出来,执行没成功

dudu | 园豆:30778 (高人七级) | 2015-06-01 15:56
其他回答(2)
0

修改一下就可以了:find 源目录 -name *.dll -exec sh -c 'fn=`basename $1 .dll`; if [ -e 目标目录/$fn ]; then cp $1 目标目录/$fn; fi' - {} \;

如:

find ./file -name *.dll -exec sh -c 'fn=`basename $1 .dll`; if [ -e ./dll/$fn ]; then cp $1 ./dll/$fn; fi' - {} \;

 

├── dll

│   ├── System.Data

│   │   └── System.Data.dll

│   └── System.Text

│       └── System.Text.dll

└── file

    ├── System.Data.dll

    └── System.Text.dll

收获园豆:30
熊哥 | 园豆:682 (小虾三级) | 2015-06-03 14:04
0

我可以推荐2本书

Apress.Pro.Windows.PowerShell.Feb.2008.pdf

Professional_Windows_PowerShell_Programming.pdf

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2015-06-13 09:23

这里是mac上的bash shell,不是Windows中的PowerShell

支持(0) 反对(0) dudu | 园豆:30778 (高人七级) | 2015-06-13 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册