Bash - 通配符来选择除符号链接之外的所有内容?

时间:2014-05-11 13:38:09

标签: bash svg symlink

我刚刚在github上开始icon project。我不知道如何处理大量的符号链接。我需要使用inkscape将svg转换为png,并使用double for循环轻松完成:

for size in 16 22 24 32 48 64 96
do
    for i in *.svg
    do
        inkscape -f $i -w $size -h $size -e ../$size/${i%.svg}.png
    done
done

当文件夹中只有.svg文件时,没关系,但是如果有符号链接,这将输出符号链接名称的png,我通常会做另一个简单的for循环在每个文件夹下创建多个具有相同名称的符号链接...

1 个答案:

答案 0 :(得分:0)

如果它是符号链接,

[[-L fileName]]将返回true;前面的感叹号将表示“不”。所以这应该有效:

for size in 16 22 24 32 48 64 96
do
    for i in *.svg
    do
        filename=../$size/${i%.svg}.png
        if [[ ! -L $filename ]]; then
            inkscape -f $i -w $size -h $size -e $filename
        fi
    done
done