find 以结尾的文件

sh/bash/dash/ksh/zsh等Shell脚本
回复
罗非鱼
帖子: 980
注册时间: 2008-04-12 12:44

find 以结尾的文件

#1

帖子 罗非鱼 » 2012-10-05 14:32

find /home/tiger -regex '.+save$'
可以找出/home/tiger下面以save结尾的文件,有两个问题
1.将.home/tiger的子目录中的,满足要求的文件名也找出来了,我只要/home/tiger目录下面,不要子目录中的,如何做?
2.为何find /home/tiger -regex 'save$'
不起作用?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: find 以结尾的文件

#2

帖子 枫叶饭团 » 2012-10-05 14:36

1.-maxdepth 1 可以指定深度
2.你这个正则只匹配的只是save
罗非鱼
帖子: 980
注册时间: 2008-04-12 12:44

Re: find 以结尾的文件

#3

帖子 罗非鱼 » 2012-10-05 14:41

root@debian:/home/tiger# ls /home/test
save
root@debian:/home/tiger# find /home/test -regex 'save$'
root@debian:/home/tiger# find /home/test -regex '.*save$'
/home/test/save
root@debian:/home/tiger#
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: find 以结尾的文件

#4

帖子 枫叶饭团 » 2012-10-05 14:45

我的理解是,-regex匹配的好像是完整文件名,带上路径的。所以。。。前面的/home/test/文件名的一部分
如果你用-name就不会出现这种情况了
罗非鱼
帖子: 980
注册时间: 2008-04-12 12:44

Re: find 以结尾的文件

#5

帖子 罗非鱼 » 2012-10-05 14:54

root@debian:/home/tiger# find /home/test -name 'save$'
root@debian:/home/tiger# find /home/test -name -regex 'save$'
find: paths must precede expression: save$
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
root@debian:/home/tiger#
不行!
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: find 以结尾的文件

#6

帖子 lilydjwg » 2012-10-05 15:04

罗非鱼 写了:root@debian:/home/tiger# find /home/test -name 'save$'
root@debian:/home/tiger# find /home/test -name -regex 'save$'
find: paths must precede expression: save$
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
root@debian:/home/tiger#
不行!
晕……看文档啊大哥——

代码: 全选

-name '*save'
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: find 以结尾的文件

#7

帖子 枫叶饭团 » 2012-10-05 15:05

代码: 全选

ef>find . -regex '\./test'
./test
ef>find . -name 'test'
./test
头像
b33e
帖子: 3874
注册时间: 2011-06-07 14:20

Re: find 以结尾的文件

#8

帖子 b33e » 2012-10-05 16:07

是啊,一个 * 就可以了
回复