查找文件扩展名为fie的根名称

时间:2013-03-20 19:26:01

标签: bash shell file-extension

您好我有2个bash脚本,我正试图一起工作。第一个脚本给出了一个文件名以及该文件所在的目录,如下所示:

 example_file
 /var/www/some_directory

第二个脚本用于根据文件类型对相关文件进行处理,即。如果exam​​ple_file.txt脚本做了一件事,如果它是example_file.mkv则完全不同。 我正在寻找一种方法让第二个脚本自动确定文件扩展名类型,仅基于其所在的文件名和目录的名称(即查看/ var / www / some_directory中的example_file并正确确定文件的扩展名)所以给定

  example_file 

脚本返回

之一
  example_file.txt  OR example_file.mkv  OR example_file. mp3 etc etc

请注意,该目录只包含一些文件和一个且只有一个名为example_file的文件。*

3 个答案:

答案 0 :(得分:1)

basename $(ls /var/www/some_directory/example_file.*)

答案 1 :(得分:0)

不确定我理解正确:    - 你有一个没有扩展名的文件    - 您希望脚本输出其名称,添加适当的扩展名吗?

如果是这样的话:man file(在一个unix系统上,file使用所谓的“魔法”确定文件的内容,这是文件的前几个字节,并输出不同的描述什么魔术字节告诉它)

答案 2 :(得分:0)

从列表中获取文件名,然后使用switch语句对其执行操作:

#! /bin/bash

dir="/var/www/some_directory"
file_prefix="example_file"

filename=$(ls -1 "$dir" | grep "^$file_prefix")
case "$filename" in
    *.txt)
        # do txt stuff
        ;;
    *.mp3)
        # do mp3 stuff
        ;;
    *)
        echo unrecognized
        ;;
esac