Answers:
我在这里找到这个:
find . \( ! -regex '.*/\..*' \) -type f -name "whatever"
\( ! -name '.*' \)
呢?
\( ! -path '*/.*' \)
会。
我写了一个叫做的脚本findnh
,我认为它比在网络上能找到的解决此问题的答案要好。
#!/bin/bash
declare -a paths
while [ $# -ne 0 ]; do
case "$1" in -*) break ;; esac
paths+=("$1")
shift
done
find "${paths[@]}" \( -name . -o -name .. -o \! \( -name '.*' -prune \) \) "$@"
例如,您可以使用像这样的命令在显式指定的隐藏目录中找到未隐藏的文件和目录,该命令findnh ~/.hiddendir/
将显示,~/.hiddendir/file
但不会显示~/.hiddendir/.superhiddenfile
。
findnh ~/.hiddendir/
,我什么也没有。除此之外,这与! -path '*/.*'
和find … | grep -v '/\.'
有何不同?
ls
除非有特别要求,否则没有列出:这些文件在各个方面都是完全普通的文件,这只是ls
默认情况下您可以忽略它们。