Bash 合并同名文件并按顺序对其编号
我正在使用Bash命令处理Linux集群 我有编号为1到100的目录,每个目录都包含一个名为“FILE1”的文件 如何将这些“FILE1”文件合并到单个目录中 这就是我迄今为止所尝试的Bash 合并同名文件并按顺序对其编号,bash,Bash,我正在使用Bash命令处理Linux集群 我有编号为1到100的目录,每个目录都包含一个名为“FILE1”的文件 如何将这些“FILE1”文件合并到单个目录中 这就是我迄今为止所尝试的 find ./*/ -iname "FILE1" -exec ln -t ./ConsolidatedFILEs/ {} + 它可以与所有同名的“FILE1”文件分开使用。此问题导致以下错误消息 ln: failed to create hard link './2/FILE1': File exists ln
find ./*/ -iname "FILE1" -exec ln -t ./ConsolidatedFILEs/ {} +
它可以与所有同名的“FILE1”文件分开使用。此问题导致以下错误消息
ln: failed to create hard link './2/FILE1': File exists
ln: failed to create hard link './3/FILE1': File exists
ln: failed to create hard link './4/FILE1': File exists
有没有一种简单的方法可以按顺序对文件编号以避免此问题?我没有找到一个足够容易理解和实施的解决方案
谢谢这将简单地移动文件,并按顺序重命名它们
for i in {1..100}; do mv $i/FILE_1 ConsolidatedFILES/FILE_1_$i; done
但是您提到,您可能在编号方面存在差距,并且目录前缀为“IHC_”,因此这里有一些补充
for i in {1..100}; do if [ -e "IHC_$i/FILE_1" ]; then mv IHC_$i/FILE_1 ConsolidatedFILES/FILE_1_$i; fi; done
当然,如果您需要链接,可以将
mv
替换为ln
。并将100
替换为您期望的上限。您是否有任何建议将此答案适用于按约定命名的目录:IHC_108、IHC_200、IHC_346。与问题中描述的目录1到100不同,我更新了它的目录格式和可能存在的差距。