微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何find隐藏的文件

我有一些文件,他们是这样命名的

.abc efg.txt .some other name has a dot in front.txt ......

我想做这样的事情

for i in `ls -a` ; do echo $i; done;

我预计结果应该是

.abc efg.txt .some other name has a dot in front.txt

但事实certificate一团糟……我怎么能得到这些隐藏的文件

在Windows资源pipe理器中隐藏Vim备份(*〜)

在Windows中将文件另存为.RProfile

归档(Ubuntu的焦油)隐藏的目录

Windows使用隐藏的文件而不是path中的目录…为什么?

IOError:尝试以“w”模式打开隐藏文件时,权限被拒绝

谢谢

在Windows中隐藏文件

如何在java文件select器中访问隐藏的linux文件

PHP的scandir()排除隐藏的文件在Windows下?

Windows显示/隐藏隐藏的文件/文件夹 – 单击 – 是否可以使用batch file – 或者单击?

用sed和mv命令取消隐藏unix中的隐藏文件

而不是使用ls使用shell模式匹配:

for i in .* ; do echo $i; done;

如果你想要所有的文件,隐藏和正常的做:

for i in * .* ; do echo $i; done;

(注意,这样做也会帮助你,如果你不想要那些你必须过滤出来的东西,还要注意,如果没有(隐藏的)文件,这种方法就会失败,在这种情况下,你也必须过滤*和.* )

如果你想要所有的文件,不介意使用bash特定的选项,你可以通过设置dotglob和nullglob来优化。 dotglob会使*也找到隐藏的文件(但不是.和.. ),如果没有匹配的文件, nullglob将不会返回* 。 所以在这种情况下,你不必做任何过滤:

shopt -s dotglob nullglob for i in * ; do echo $i; done;

避免. 和..你可以这样做:

find . -name ".*" -type f -maxdepth 1 -exec basename {} ";"

这将打印你想要的。 如果你需要做更多的事情而不是echo ,那就把它作为exec的参数。

for fname in .*; do echo $fname; done; 将打印. 还有..

要查找隐藏的文件,请使用find:

find . -wholename "./.*"

从结果中排除他们:

find . -wholename "./.*" -prune -o -print

另一种用空格处理整个文件方法是把它们当作行:

ls -1a | while read aFileName do echo $aFileName done

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐