我对bash脚本还比较陌生。
我需要创建一个脚本,该脚本将遍历一系列目录,使用特定名称进入子目录,然后将其文件内容移动到所有文件的公用文件夹中。
到目前为止,我的代码是这样的:
#!/bin/bash
#used to gather usable pdb files
mkdir -p usable_pdbFiles
#loop through directories in "pdb" folder
for pdbDirectory in */
do
#go into usable_* directory
for innerDirectory in usable_*/
do
if [ -d "$innerDirectory" ] ; then
for file in *.ent
do
mv $file ../../usable_pdbFiles
done < $file
fi
done < $innerDirectory
done
exit 0
目前我得到
usable_Gather.sh: line 7: $innerDirectory: ambiguous redirect
当我尝试运行脚本时。
任何帮助,将不胜感激!
重定向< $innerDirectory
和< $file
是无效的,这引起了问题。您无需为此使用循环,而可以依赖于Shell的文件名扩展并mv
直接使用:
mkdir -p usable_pdbFiles
mv */usable_*/*.ent usable_pdbFiles
请记住,此解决方案以及您正在使用的基于循环的解决方案,将覆盖目标目录中具有相同名称的文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句