在Mac上如何用.sh脚本完成如下的文件复制操作。
目标文件夹中以System.开头的dll文件
源文件中对应目标文件夹中的dll文件在子文件夹。
请问如何用shell脚本从源文件夹复制目标已经存在的.dll文件?
用rsync命令也许是更简单的解决方法
find 源目录 -name *.dll -exec sh -c 'fn=`basename $1`; if [ -e 目标目录/$fn ]; then cp $1 目标目录/$fn; fi' - {} \;
照着这个写出来,执行没成功
修改一下就可以了: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
我可以推荐2本书
Apress.Pro.Windows.PowerShell.Feb.2008.pdf
Professional_Windows_PowerShell_Programming.pdf
这里是mac上的bash shell,不是Windows中的PowerShell