排除 Solaris 中的所有隐藏文件和目录

排除 Solaris 中的所有隐藏文件和目录

Unix 新手需要您的帮助。

我正在使用 Solaris 10,需要查找所有文件(不包括所有隐藏文件和目录)。最终目标是将其放入一个脚本中,该脚本将删除服务器上 60 天以上的文件。

我试过:

查找 . ! (-name '.*' -prune )

但它根本找不到任何文件。

任何建议都值得赞赏。

答案1

我认为问题在于您排除了名为“.*”的所有内容,并且您从“.”开始搜索(这与您的排除相匹配),因此您排除了所有内容。此外,我认为您误用了标志-prune(它是一种操作,如-print,因此不一定能用作否定表达式的一部分)。试试这个:

find . \( -name '.*' \! -name '.' -prune \) -o -print

这明确地在搜索中包含了 '.',然后排除了所有其他匹配的内容.*。如果你知道你的起点不包含任何点文件,你可以稍微简化一下:

find * \( -name '.*' -prune \) -o -print

答案2

这应该有效:

find * | grep -v /\\.

答案3

需要查找除所有隐藏文件(文件和目录)之外的所有文件。

查找 .-name '[^.]*'

排除所有(隐藏文件)和目录。

查找 . -type f -name '[^.]*'

最终目标是将其放入一个脚本中,删除服务器上 60 天以上的文件

查找 . -name '[^.]*' -mtime +59 | xargs rm -f

相关内容