2010-10-21 40 views
1

首先,任何对此的支持和帮助都非常感谢。简单的Mac Bash脚本(查找/替换)

我正在尝试编写一个简单的Bash脚本(完全是新的)来替换给定目录中的文件。

基本上,我需要写一个脚本来取代Safari浏览器偏好设置文件,这里就是我have..and什么不工作了此事:

#!/bin/bash 
find /Files/ -iname "com.apple.Safari.plist" - print0 | xargs -I{} -0 -1 cp file /Users/{}/Library/Preferences 

它的错误了下列要求:

find: -: unknown option 
xargs: illegal option -- 1 

任何想法,想法,非常感谢。

感谢,

回答

1

我不明白你到底想要完成什么。据我所知,你会在/ Files /中有这个“com.apple.Safari.plist”,是否正确?

然后你想把这个文件放到一个我认为覆盖Safari当前plist文件的地方。假设你把ghostdog74的正确意见和删除- print0之间的空间,从而将其转化为-print0,然后从xargs的的-1,因为它不存在,这是会发生什么:

find会发现你的文件/ Files /和xargs将运行此: cp file /Users/com.apple.Safari.plist/Library/Preferences;它会死亡,因为它找不到名为“file”的文件或名为“/Users/com.apple.Safari.plist/”的目录。

这很可能不是你想要的。 :)

如果您只是想将文件复制到某个地方,为什么不做cp /Files/com.apple.Safari.plist ~/Library/Preferences/

在这种情况下,你真的需要findxargs吗?你能澄清吗?

+0

welp ..这么做了,谢谢一吨Malvin! – Jay 2010-10-21 04:20:51

+0

没问题,很高兴有人帮忙。但是,您可以接受答案,以防止其他人在不需要时尝试提供更多答案。谢谢! :) – malvim 2010-10-21 13:44:06

0

- print0之间没有空格。由于-1不是一个选项,请将其删除并查看。

find /Files/ -iname "com.apple.Safari.plist" -print0 | xargs -I{} -0 cp file /Users/{}/Library/Preferences