For 循环复制命令

For 循环复制命令

我有一个文件FileToCopy.pbs,我想将其复制到多个目录中,同时将xxx文件中调用的一行更改为pwd要复制文件的目录的位置。

我可以使用什么样的 for 循环来执行这个命令?

另外,我的一些目录*在目录路径名末尾包含一个。

更具体地说,我有一个目录结构:

/home/path1/dir1
/home/path1/dir2
/home/path1/dir3*
/home/path1/dir4*
.
.
etc

并希望复制FileToCopy.pbs到所有目录中,以便我有:

/home/path1/dir1/FileToCopy.pbs
/home/path1/dir2/FileToCopy.pbs
/home/path1/dir3*/FileToCopy.pbs
/home/path1/dir4*/FileToCopy.pbs

xxx同时将中的每个复制文件中的一行更改FileToCopy.pbs为其所在的目录。例如,位于 的行xxxFileToCopy.pbs更改/home/path1/dir1//home/path1/dir1/

谢谢。

答案1

我已经明白了。

代码如下:

在目录中/home/path1/

for i in *; do cp /directory/of/FileToCopy.pbs $i; cd $i; sed -i s#xxx#$(pwd)#g FileToCopy.pbs ; cd /home/path1/; done

相关内容