我想将文件从一个文件夹复制到另一个文件夹,我在文件夹中有二进制数据文件,txt文件等。
但是例如我的文件存储在folder1中,假设脚本应该创建一个名为folder2的新文件夹
我尝试使用以下代码,但我没有成功
#!/usr/bin/env bash
for file in /home/mj/New Folder/*inp
name="$(basename "$file" .inp)"
for file in ~/home/mj/New Folder/*coor
name="$(basename "$file".dcd)"
for file in ~/home/mj/New Folder/*pdb
name="$(basename "$file".coor)
mkdir -p /home/mj/New Folder/"$name"
cp "$file" "/home/mj/New Folder/"$name"
done
答案 0 :(得分:0)
问题是你似乎试图将3个循环混合成一个。你需要这样的东西:
#!/usr/bin/env bash
for file in /home/mj/New Folder/*inp ; do
name="$(basename "$file" .inp)"
mkdir -p /home/mj/New Folder/"$name"
cp "$file" "/home/mj/New Folder/$name"
done
for file in ~/home/mj/New Folder/*coor
name="$(basename "$file".dcd)"
mkdir -p /home/mj/New Folder/"$name"
cp "$file" "/home/mj/New Folder/$name"
done
for file in ~/home/mj/New Folder/*pdb
name="$(basename "$file".coor)"
mkdir -p /home/mj/New Folder/"$name"
cp "$file" "/home/mj/New Folder/$name"
done
请注意您在提交的脚本中不匹配的引号。 当然,有很多方法可以使这更好,并避免重复循环三次,但我想这超出了这个问题的范围。