前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pnpm 会使用硬链接减少磁盘空间,那如何查看某个 package 硬链接到全局目录的什么位置?

pnpm 会使用硬链接减少磁盘空间,那如何查看某个 package 硬链接到全局目录的什么位置?

作者头像
山月
发布2022-11-02 16:38:04
1K0
发布2022-11-02 16:38:04
举报

1. find:根据文件名搜索

find,在某个目录及所有子目录中的文件进行「递归搜索」,可根据文件的属性进行查找。

而文件的属性,可通过 stat1 命令进行获得。

你还记得文件有哪些属性吗?

代码语言:javascript
复制
# 注意,如果文件路径名使用 glob,则需要使用引号括起来
$ find . -name '*.json'

# 在当前目录递归查找包含 hello 的文件
$ find . -name '*hello*'

# 在当前目录递归查找修改时间大于 30 天并且小于 60 天的文件
# 其中数字以天为单位,+ 表示大于,- 表示小于
# +30: 大于30天
# -60: 小于60天
$ find . -mtime +30 -mtime -60

# 在当前目录递归查找权限 mode 为 777 的文件
$ find . -perm 777

# 在当前目录递归查找类型为 f/d/s 的文件
$ find . -type f
$ find . -type d
$ find . -type s

# 在当前目录递归查找 inode 为 10086 的文件
# 一般用以寻找硬链接的个数,比如 pnpm 中某一个 package 的全局路径在哪里
$ find . -inum 10086

# 寻找相同的文件(硬链接),与以上命令相似
$ find . -samefile package.json

Q:你还记得 f/d/s 各代表什么文件类型吗?

如果需要找到所有文件,并对所查询的文件进行一系列操作呢?

此时可使用 --exec,而文件名可使用 {} 进行替代,最后需要使用 \; 结尾。

代码语言:javascript
复制
# 在当前目录递归查找所有以 test 开头的文件,并打印完整路径
# realpath: 打印文件的完整路径
# {}: 查找到文件名的占位符
$ find . -name 'test*' -exec realpath {} \;

而如果用以删除,则可直接使用 -delete 命令。

代码语言:javascript
复制
# 在当前目录递归查找所有以 test 开头的文件,并删除
$ find . -name 'test*' -exec realpath {} \;

2. grep -r:根据文件内容搜索

grep,即 Global Regular Expression Print 的缩写,可基于正则表达式在文件中搜索内容。

如需在目录中进行搜索,可使用 -r 参数。

代码语言:javascript
复制
# 在当前目录寻找 helloworld 
$ grep -r helloworld .

3. ag:根据文件内容搜索

可根据 the silver searcher2 进行文件内容搜索。

该命令需要手动下载安装。

代码语言:javascript
复制
$ ag helloworld

4. git grep:根据文件内容搜索

如果使用 git 管理项目,并且需要在项目中进行搜索内容的话,则可以使用 git grep

代码语言:javascript
复制
$ git grep helloworld

5. 作业

  1. 如何找到当前目录及所有子目录下文件名包含 hello 的文件
  2. 如何找到当前目录及所有子目录下文件内容包含 hello 的文件
  3. 如何列出当前目录(不包含子目录)下的所有目录
  4. 如果一个连接为硬链接,那如何在全局目录中找到该文件
  5. 如何删掉当前目录中最近修改时间大于一年的全部文件

参考资料

[1]

stat:https://q.shanyue.tech/command/stat.html

[2]

the silver searcher:https://github.com/ggreer/the_silver_searcher

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. find:根据文件名搜索
  • 2. grep -r:根据文件内容搜索
  • 3. ag:根据文件内容搜索
  • 4. git grep:根据文件内容搜索
  • 5. 作业
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档