linux查找文件find和grep

在linux下我们往往需要查找文件或查找文件下的内容,可以使用find和grep命令
先从入门开始

入门便捷使用

如我要在一个目录下查找所有路径中带有user的目录或文件,我只要

find . -name "user*"
./user-ops
./user-ops/target/user-ops-0.1.jar.original
./user-ops/target/user-ops-0.1-sources.jar
./user-ops/target/user-ops-0.1.jar
./user-transfer
./user-transfer/user-transfer.iml

这里就表示在当前目录及子目录下匹配user打头的文件或目录
grep 命令则是查看文件中的具体内容,比如我们要看文件里哪里用了某个变量

wujingcideMacBook-Pro:user-group wujingci$ grep -rni instagramID *
service/src/main/java/net/vickymedia/user/rest/UserCompositeRestController.java:1429:           UserUpdater uu = UserUpdater.builder().userId(userId).instagramID(insName).build();
mus-user-composite-service/src/main/java/net/vickymedia/user/rest/UserCompositeRestController.java:1531:        UserUpdater uu = UserUpdater.builder().userId(userId).instagramID("").build();

查找到了文件,这里的-rni中的r表示搜索子目录,n表示显示行数,i表示忽略大小写

高级

其实这两个命令支持很多高级用法
比如find我们可以依据修改时间来找
atime(access time),文件最后被访问时间
ctime(change time),文件本身最后被变更的时间,变更动作可以使chmod, chgrp, mv等
mtime(modify time),文件内容最后被修改的时间,修改动作可以是echo,vi等

除了固定时间还可以用-newer,-nonewer把一个文件的修改时间作为基准,查找前后更改的文件
还有-group, -nogroup,-user指定用户组和用户
-size,-type来指定大小和类型
举个例子,我要找当前目录下
1. 改动不超过12小时的
2. 大小大于10k的
3. py文件

wujingcideMacBook-Pro:aweme wujingci$ find . -name "*py" -type f -size +1k -ctime -12h
./user/user/dao/user.py
./user/user/method/ban_user.py
./user/user/method/update_user.py
./user/service_user_pyrpc/thrift_gen/aweme/user/AwemeUserService.py
./user/service_user_pyrpc/thrift_gen/aweme/user/ttypes.py
./common/rpc_gen/common_rpc_gen_pyrpc/thrift_gen/aweme/user/AwemeUserService.py
./common/rpc_gen/common_rpc_gen_pyrpc/thrift_gen/aweme/user/ttypes.py

grep命令也有很多高级用法
比如加色彩 –color
-q指定只查找到一个就停止,-m为指定查找数量
比如我要查找uniq_id_modify_time这个变量,并在5处打桩
要找到正好5个文件,标出行号,忽略大小写:

wujingcideMacBook-Pro:aweme wujingci$ grep -rni -m 5 uniq_id_modify_time --color *
api/v1/model/user_update.py:146:            'uniq_id_modify_time': user.UniqueIdModifyTime,
aweme_scripts/sync_musically_tiktok/handler.py:112:        # apple_account = uniq_id_modify_time = None
aweme_scripts/sync_musically_tiktok/handler.py:133:        # 整理改动时注意将uniq_id_modify_time丢到extra里面
aweme_scripts/sync_musically_tiktok/handler.py:147:            uniq_id_modify_time = data.get('user').get('handle_modified')
aweme_scripts/sync_musically_tiktok/handler.py:150:                ins_id = google_account = youtube_channel_id = youtube_channel_title = apple_account = uniq_id_modify_time = None
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中,`find`和`grep`是两个常用的命令,它们有不同的作用。 `find`命令是用来查找文件和目录的命令。它能够在指定的目录下递归查找文件和目录,并按照用户指定的条件进行搜索。`find`命令的搜索条件包括文件名、文件类型、文件大小、文件修改时间等等。`find`命令还能够执行用户指定的操作,例如复制、移动、删除等等。 `grep`命令是用来查找文件中符合指定模式的行的命令。它通常和管道符一起使用,例如 `grep pattern filename 在Linux中,`find`和`grep`是两个不同的命令,它们主要用途不同。 `find`命令是用来查找文件和目录的命令。它能够在指定的目录下递归查找文件和目录,并按照用户指定的条件进行搜索。`find`命令的搜索条件包括文件名、文件类型、文件大小、文件修改时间等等。`find`命令还能够执行用户指定的操作,例如复制、移动、删除等等。 `grep`命令是用来查找文件中符合指定模式的行的命令。它通常和管道符一起使用,例如 `grep pattern filename`。`grep`命令会在指定的文件中搜索包含指定模式的行,并输出结果。 因此,`find`和`grep`命令有着不同的用途。`find`命令用于搜索文件和目录,而`grep`命令用于搜索文件中的内容。两个命令通常结合使用,例如使用`find`命令查找指定目录下的文件,再使用`grep`命令在找到的文件中搜索特定的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值