使用特定扩展名打印每个文件的名称

时间:2011-05-07 17:43:26

标签: linux bash foreach

如何打印具有特定扩展名的特定目录中每个文件的名称?

这是我到目前为止所拥有的:

#!/bin/sh

DIR="~/Desktop"
SUFFIX="in"

for file in $DIR/*.$SUFFIX
do
    if [ -f $file ]; then
    echo $file
    fi  
done

不幸的是它不起作用。

它出了什么问题?

4 个答案:

答案 0 :(得分:6)

在您的DIR =“〜/ Desktop”中,“〜”未展开,因为它位于“”中。 除掉 ””。 DIR =〜/桌面

答案 1 :(得分:1)

您可以将查找与-type f

一起使用
#!/bin/sh
DIR="~/Desktop"
SUFFIX="in"
find "$DIR" -maxdepth 1 -type f -name "*.${SUFFIX}" -exec somecommand {} \;

答案 2 :(得分:0)

您的信息:Unix系统中的“file”通常是命令的名称。

其目的是分析作为参数给出的文件并推断格式。例如:

$ file entries.jar 
entries.jar: Zip archive data, at least v2.0 to extract

答案 3 :(得分:-1)

for file in `ls $DIR/*.$SUFFIX`

请注意ls和反叛