从查找输出中消除多扩展名文件名

从查找输出中消除多扩展名文件名

/etc我需要找到带有扩展名的所有文件的大小.conf。我尝试使用 执行此操作find /etc -type f -name "*.conf" -exec du -chB1 {} +,但 find 给了我.conf具有两个或三个扩展名的文件。问题是如何过滤find输出以便仅获取带有以下内容的文件扩展名,那是.conf?这可以通过find还是我需要另一个命令来实现?

答案1

您可以排除包含多个点的文件名:

find /etc -type f  ! -name '*.*.*' -name '*.conf'

如果您仍然想打印隐藏.conf文件名(如果有的话,à la /etc/.pwd.lock)那么

find /etc -type f ! -name '?*.*.*' -name '*.conf'

相关内容