我有一些需要转到适当位置的设置文件。 例如。 settings.location1,settings.location2,settings.location3需要转到相应的文件夹,即location1,location2和location3,并重命名为简单设置。
例如。
/some/path/settings.location1 - > /其他/路径/ LOCATION1 /设置
/some/path/settings.location2 - > /其他/路径/ LOCATION2 /设置
我想出了以下命令:
find /some/path/settings.* -exec cp {} /other/path/$(echo {} | sed 's/.*\.//')/settings \;
但由于某种原因,sed没有被执行。结果是
cp: cannot create regular file `/other/path//some/path/settings.location1/settings': No such file or director
似乎如果我单独运行它们,所有命令都会很好地执行,但如果我输入exec则不行。我做错了什么?
答案 0 :(得分:0)
要完成这项工作,您需要在文件系统中不存在时创建中间文件夹。
您可以尝试:
find /some/path/settings.* -exec mkdir -p /other/path/$(ls -m1 {})/ && cp {} /other/path/$(ls -m1 {})/settings \;