我知道我错过了一些显而易见的东西,我确定这是与我的名称部分。如何查找名称以“a”开头的文件?
这是作业,但我认为我非常接近正确的答案。更好的写作方式总是值得赞赏的!
find /home/caine/thecopy -user caine -size -10240c -name ^a.* | wc
这给出了一个0 0 0
wc
,删除名称中的表达产生计数不减当年。
我试过了^ a,'^ a','^ a。*',并且都有0个结果。 TIA人。 :)
我知道我错过了一些显而易见的东西,我确定这是与我的名称部分。如何查找名称以“a”开头的文件?
这是作业,但我认为我非常接近正确的答案。更好的写作方式总是值得赞赏的!
find /home/caine/thecopy -user caine -size -10240c -name ^a.* | wc
这给出了一个0 0 0
wc
,删除名称中的表达产生计数不减当年。
我试过了^ a,'^ a','^ a。*',并且都有0个结果。 TIA人。 :)
你需要用文件名:
find /home/caine/thecopy -user caine -size -10240c -name "a.*" | wc
# ^^
到-name
的参数是一个shell模式,不正则表达式。 ^
和.
字符将与文字^
和.
中的字符匹配,而不是名称和任何字符的开头,如同它们是正则表达式时那样。
如果你想匹配开始'a'
文件名,这应该工作:
find /home/caine/thecopy -user caine -size -10240c -name 'a*' | wc
的引号a*
(单人或双人)是很重要的;如果没有它们,外壳会在find
看到它之前扩大图案。
如果你确实想匹配一个正则表达式,你可以用-regex
代替-name
;这是一个GNU特定的扩展。但在这种情况下,shell模式可能已经足够好了。
注意:我假设你想匹配名称以a
开头的文件;你其实并没有这么说。
宾果!是的,我仍然错误地使用正则表达式字符的地方和时间。 :/ 非常感谢您的帮助球员。 :) – moominboy 2013-02-26 21:34:42
+1的'-regex' – user000001 2013-02-27 00:01:44
我认为它不需要'^'(除非它是文件名的一部分) – user000001 2013-02-26 21:14:23
+1,否则表达式扩展为以当前工作目录中的'a'开头的文件名。 – jman 2013-02-26 21:14:54
也就是@skjaidev。 – fedorqui 2013-02-26 21:15:29