假设我有以下子目录
./a/, ./b/, ./c/, ...
也就是说,在我当前的工作目录中有这些子目录a/
,b/
和c/
,并且在这些子目录中的每一个都是文件。在目录a/
中是文件a.in
,在目录b/
中是文件b.in
,依此类推。
我现在想将每个.in
文件复制到一个.out
文件中,即a.in
toa.out
和b.in
to b.out
,并且我希望它们驻留在从中复制它们的目录中。所以a.out
会在目录中找到a/
。
我尝试了各种不同的方法,例如
find ./ -name '*.in'|cp * *.out
这不起作用,因为它认为*.out
是一个目录。也试过
ls -d */ | cd; cp *.in *.out
但它会列出子目录,进入每个子目录,但不会让它cp
起作用(仍然不起作用)
这
find ./ -name '*.in'
命令工作正常。有没有办法将参数传递给赋值运算符?例如
find ./ -name '*.in'| assign filename=|cp filename filename.out
whereassign filename=
给 filename 每个.in
文件的值。事实上,如果分配可以摆脱.in
文件扩展名会更好,而不是得到a.in.out
我们会得到首选a.out
感谢您的时间。