【问题标题】:Adding extension to file using file command in linux在linux中使用file命令向文件添加扩展名
【发布时间】:2019-06-25 22:13:56
【问题描述】:

我有一个没有扩展名的文件,我想以编程方式为其添加扩展名。我知道file 命令提供了有关文件扩展名的信息。我如何利用它来将扩展名添加到文件中?我正在下载的文件可以假定为图像文件(png、jpg 等)

我想要的结果是:

Input: filename

Output: filename.ext

全部在 bash 脚本中

【问题讨论】:

    标签: bash


    【解决方案1】:

    这样的事情应该让你开始:

    #!/bin/bash
    for f in "$@"; do
        if [[ $f == *'.'* ]]; then continue; fi  # Naive check to make sure we don't add duplicate extensions
        ext=''
        case $(file -b "$f") in
            *ASCII*) ext='.txt' ;;
            *JPEG*)  ext='.jpg' ;;
            *PDF*)   ext='.pdf' ;;
            # etc...
            *) continue ;;
        esac
        mv "${f}" "${f}${ext}"
    done
    

    您必须检查每个潜在文件类型的 file 的输出,以找到合适的 case 标签。

    【讨论】:

      【解决方案2】:

      您可以尝试查找或创建文件类型到文件扩展名的映射,但没有通用的方法。想想 JPEG 图像,您可以使用 .jpg 或 .jpeg 扩展名,它们的含义相同。 MP4 视频容器也一样...

      另外,在 linux 上,文件扩展名对大多数程序都无关紧要,所以你可以不关心它,但如果你仍然想对某些类型的文件这样做,你可以查看这个答案:https://stackoverflow.com/a/6115923/9759362

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-01
        • 2014-03-07
        • 2015-07-02
        • 1970-01-01
        • 1970-01-01
        • 2013-11-03
        • 2022-12-19
        • 1970-01-01
        相关资源
        最近更新 更多