首页 > 解决方案 > 了解 bash 查找

问题描述

我试图学习 bash 基础知识。我正在尝试如何*/.*显示文件夹中所有子目录中的所有不可见文件notes-bash

~/anir/repos/notes-bash$ find */.*
images/.
images/./bashrepl.png
images/..
images/../.git
images/../.git/COMMIT_EDITMSG
:
del/.
del/..
del/../.git
del/../.git/COMMIT_EDITMSG
del/../.git/HEAD
:

我不明白为什么它将文件列为images/... 这是否意味着与 相同的文件夹notes-bash?我想它只是试图/.在所有可能的目录中查找。因此,它会在所有子目录(此处imagesdel)中重复出现,以强制形成带有/.子字符串的路径。

Q1。我对此是否正确?

所以我接下来创建了子目录del/del1并运行以下命令来检查通过的所有路径del1

$ find */.* | grep del1
del/./del1
del/../del/del1
images/../del/del1

Q2。所以,现在我猜为什么它没有重复出现del1,这就是为什么它没有列出诸如del/del1/../../.git?

标签: bash

解决方案


我正在尝试如何/. 显示文件夹中所有子目录中的所有不可见文件notes-bash

.这将列出当前目录和所有子目录中以 a 开头的所有文件:

~/anir/repos/notes-bash$ find -name '.*'

我不明白为什么它将文件列为images/..

这是因为*你的第一个find匹配一个名为imagesinside的目录notes-bash

我接下来创建了子目录del\del1

不,你没有。您创建了一个名为的del子目录,并且可能是该子目录的子目录del1del/del1将是适当的参考。

你关于为什么没有出现在任何地方的猜测del1有点不对劲。做就是了

echo */.*

看看它显示了什么。这些是您的find命令将使用的文件和目录。


推荐阅读