我们如何复制仅以哈希格式命名的文件

我们如何复制仅以哈希格式命名的文件

我在目录 1 中有一个文件列表,我需要将唯一存在的哈希文件复制到另一个目录 2。如何使用脚本执行此操作?对于任何其他具有正常名称的文件,我都可以执行此操作,但是哈希呢?我们需要解析才能做到这一点吗?文件名采用这种形式 e6a0feaeh74b94f91419795647be61801b06ecec912087c14907da77f90d6e1a

答案1

因此,如果其他文件的名称中没有数字,即 0123456789,如您所说,那么类似这样的操作可能会满足您的要求

#!/bin/bash
pattern="[0-9]"

for fn in ./* ; do
    if [[ $fn =~ $pattern ]]; then
        cp $fn ./directory2/
    fi
done

只需将 /directory2/ 替换为您要将文件复制到的正确目标目录即可。

注意:这是一个非常基本的脚本,执行它时还要求您在目录中。它可能需要一些完善,因此请根据需要进行修改。

答案2

我假设您的文件名有 64 个字符(∈小写字母或数字)。

使用 Perl,你可以运行如下命令

perl -e 'for (grep(/^[a-z0-9]{64}$/,<*>)){`mv $_ directory2/`}'
  • <*>扩展至所有文件,
  • grep(/^[a-z0-9]{64}$/, ...)选择 64 个长的

相关内容