中文文件名:find 与 git ls-files / ls-tree 的区别

  • en 文件名 : OK

    git ls-files origin/dev | grep 'xx(副本)copy(副本).xxxxx' git ls-files 'xx(副本)copy(副本).xxxxx'
    "xx(\345\211\257\346\234\254)copy(\345\211\257\346\234\254).xxxxx"
    git ls-files origin/dev 'xx(副本)copy(副本).xxxxx' "xx(\345\211\257\346\234\254)copy(\345\211\257\346\234\254).xxxxx" git ls-tree origin/dev 'xx(副本)copy(副本).xxxxx'
    100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 "xx(\345\211\257\346\234\254)copy(\345\211\257\346\234\254).xxxxx"

git ls-tree / ls-tree 获得的中文文件名,是转义后的

$ git ls-tree origin/dev 'aa (副本) copy (副本) (副本).xxxxx'

100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 "aa (\345\211\257\346\234\254) copy (\345\211\257\346\234\254) (\345\211\257\346\234\254).xxxxx"

显示不正确:没有显示结果

  • 由于 git ls-tree / ls-tree 获得的文件名,是转义后的。所以 grep 在这里没有正确的结果显示。

$ git ls-tree origin/dev | grep 'aa (副本) copy (副本) (副本).xxxxx'

find 获得的中文文件名,是原样的

$ find . -name 'xx(副本)copy(副本).xxxxx' | grep 'xx(副 本)copy(副本).xxxxx'

./xx(副本)copy(副本).xxxxx

$ find . -name 'xx(副本)copy(副本).xxxxx'

./xx(副本)copy(副本).xxxxx

相关推荐
潘正翔8 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
weigangwin8 小时前
agent-workspace-linux 不是远程桌面:Linux AI 工作区的隔离边界验收
linux·xvfb·mcp·桌面隔离·权限边界·bubblewrap·agent-workspace
Dovis(誓平步青云)10 小时前
远程办公软件文件传输实测:6 款工具的速度、稳定性和办公体验对比
linux·运维·服务器·后端·生成对抗网络
Omics Pro10 小时前
深度学习多组学互作:组内+组间
数据库·人工智能·深度学习·mysql·搜索引擎·自然语言处理
Java小白笔记10 小时前
Docker 安装配置完全指南:MacOS 、Windows、Linux环境下的安装、配置与验证
linux·macos·docker
qetfw12 小时前
CentOS 7 搭建 LDAP 目录服务
linux·运维·centos
ALINX技术博客13 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统进阶-PS DMA
linux·fpga开发
IT方大同13 小时前
linux简介
linux·运维·服务器
mounter62514 小时前
从内存隔离到运行时防线:透视 Linux 内核安全强化的博弈与演进
linux·网络·安全·linux kernel·kernel
微道道15 小时前
Linux盒子局域网内使用 .local 域名访问,告别IP变化烦恼
linux·运维·服务器·hermes