我知道我错过了一些明显的东西,我确信这与我的-name部分有关。
这是家庭作业,但我认为我非常接近正确答案。更好的写作方式也总是受到赞赏!
find /home/caine/thecopy -user caine -size -10240c -name ^a.* | wc
这会得到wc
0 0 0
,删除名称表达式会产生大量的计数。
我已经尝试了^ a,'^ a','^ a。*'并且都得到0结果。 TIA伙计们。 :)
答案 0 :(得分:4)
您需要包装文件名:
find /home/caine/thecopy -user caine -size -10240c -name "a.*" | wc
# ^ ^
答案 1 :(得分:2)
-name
的参数是shell模式,不是正则表达式。 ^
和.
字符将分别与文字^
和.
字符匹配,而不是名称和任何字符的开头,就像它们是正则表达式一样
如果您想匹配以'a'
开头的文件名,这应该有效:
find /home/caine/thecopy -user caine -size -10240c -name 'a*' | wc
a*
周围的引号(单引号或双引号)很重要;没有它们,shell会在find
看到之前扩展模式。
如果您确实想要匹配正则表达式,可以将-name
替换为-regex
;这是GNU特定的扩展。但在这种情况下,shell模式可能已经足够好了。
注意:我假设您要匹配名称以a
开头的文件;你实际上并没有这么说。