如何打印具有特定扩展名的特定目录中每个文件的名称?
这是我到目前为止所拥有的:
#!/bin/sh
DIR="~/Desktop"
SUFFIX="in"
for file in $DIR/*.$SUFFIX
do
if [ -f $file ]; then
echo $file
fi
done
不幸的是它不起作用。
它出了什么问题?
答案 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
和反叛