下面的代码帮助我将文件从test1文件夹复制到test2文件夹但是我不需要每次都制作test2文件夹而且每次都不想跳跃,我需要复制代码中所有提到的文件命令,这可能吗?
for file in /Path/test1/*mdp ; do
mkdir -p /Path/test2/"$name"
cp "$file" "/Path/test2/$name"
done
for file in /Path/test1/*gro ; do
mkdir -p /Path/test2/"$name"
cp "$file" "/Path/test2/$name"
done
for file in /Path/test1/*top ; do
mkdir -p /Path/test2/"$name"
cp "$file" "/Path/test2/$name"
done
for file in /Path/test1/*nvt1.cpt ; do
mkdir -p /Path/test2/"$name"
cp "$file" "/Path/test2/$name"
done
答案 0 :(得分:1)
你可以这样做:
newpath="/Path/test2/$name"
mkdir -p "$newpath"
cp /Path/test1/*{mdp,grp,top,nvt1,cpt} "$newpath"
答案 1 :(得分:0)
for
循环可以采用多种模式;每个的扩展组合成一个循环迭代的列表。 mkdir
命令可以移出循环,因为它不依赖于file
的值。
mkdir -p /Path/test2/"$name"
for file in /Path/test1/*mdp /Path/test1/*gro /Path/test1/*top /Path/test1/*nvt1.cpt ; do
cp "$file" "/Path/test2/$name"
done
但是,anubhava's answer更好,因为它只运行cp
一次,而不是每个文件运行一次。大括号是较长但标准
cp /Path/test1/*mdp /Path/test1/*grp /Path/test1/*top /Path/test1/*nvt1 /Path/test1/*cpt "$newpath"