如何防止bash脚本中的文件覆盖?
我正在尝试自动化一个进程,该进程采用文件类型NIFTI,对其进行预处理,并将新处理的文件放入输出文件夹如何防止bash脚本中的文件覆盖?,bash,terminal,Bash,Terminal,我正在尝试自动化一个进程,该进程采用文件类型NIFTI,对其进行预处理,并将新处理的文件放入输出文件夹 deepbrain-extractor -i <input-dir> -o <output-dir> 问题是每次代码运行时,它都会覆盖旧文件(因为所有文件都自动获得相同的名称)。有没有办法防止这种情况发生?获取唯一文件名的常用方法是使用当前日期和时间。 您可以将其与输入文件名结合使用,以确保输出文件永远不会被覆盖 if[!-f“$FILE”];然后 echo“$文件不
deepbrain-extractor -i <input-dir> -o <output-dir>
问题是每次代码运行时,它都会覆盖旧文件(因为所有文件都自动获得相同的名称)。有没有办法防止这种情况发生?获取唯一文件名的常用方法是使用当前日期和时间。 您可以将其与输入文件名结合使用,以确保输出文件永远不会被覆盖
if[!-f“$FILE”];然后
echo“$文件不存在。”
对于路径/*.nii中的文件
做
deepbrain提取器-i$file-o路径/newfiles_${file##*/}$(日期+%Y-%m-%d_%H-%m-%S)
完成
fi
因此,输出目录的名称类似于newfiles\u input\u 2020-11-13\u 12-34-56
另请参见获取唯一文件名的常用方法是使用当前日期和时间。 您可以将其与输入文件名结合使用,以确保输出文件永远不会被覆盖
if[!-f“$FILE”];然后
echo“$文件不存在。”
对于路径/*.nii中的文件
做
deepbrain提取器-i$file-o路径/newfiles_${file##*/}$(日期+%Y-%m-%d_%H-%m-%S)
完成
fi
因此,输出目录的名称类似于newfiles\u input\u 2020-11-13\u 12-34-56
另请参见谢谢您的建议和评论! 似乎使用这个代码给了我想要的
deepbrain-extractor -i "$file" -o "${file%.nii}.out"
非常感谢 谢谢你的建议和评论! 似乎使用这个代码给了我想要的
deepbrain-extractor -i "$file" -o "${file%.nii}.out"
非常感谢 在这种情况下,shell没有控制权,因为它是定义路径/newfiles发生什么的
deepbrain extractor
。将文件复制到备份目录中,运行deepbrain extractor,然后将其移回(更改名称后,可能-old.nii是否希望每个输入文件的path/newfiles
不同?您希望发生什么行为,而不是实际得到的行为?如果您希望基于输入名称创建输出文件名,那么它可能类似于deepbrain提取器-i“$file”-o“${file%.nii}.out“
(这个问题将是我们知识库中已有问题的副本)。就是这样一个副本。在这种情况下,shell没有控制权,因为定义路径/newfiles
的是deepbrain extractor
。将文件复制到备份目录中,运行deepbrain extractor,然后将其移回(更改名称后,可能-old.nii是否希望每个输入文件的path/newfiles
不同?您希望发生什么行为,而不是实际得到的行为?如果您希望基于输入名称创建输出文件名,那么它可能类似于deepbrain提取器-i“$file”-o“${file%.nii}.out“
(此问题将与我们知识库中已有的问题重复)。是这样的重复问题之一。重复问题应关闭,而不是回答。请参阅的“回答问题”部分。重复问题应关闭,而不是回答。请参阅的“回答问题”部分。