仅打印显示文件的子目录



对于给定的文件,我只想列出它出现的子目录。我正在使用以下方法搜索文件:

find . -name <filename> -print

但这也在打印文件名。我还想列出按创建日期排序的子目录。我正在对这样的文件进行排序:

find . -name test.txt -printf "%T@t%Tc %6k KiB %pn" | sort -n | cut -f 2-

有人可以帮忙吗?

您正在寻找目录,那么仅构建与正确目录匹配的条件呢?

find . -type d -exec test -f {}/test.txt ; -print

这会产生为每个文件生成一个exec的轻微额外费用,但在其他方面却快速而简单。

但是,列出按创建日期排序的结果可能会有问题。如果目录名称都很简单 - 字母数字,没有像换行符这样的特殊字符 - 那么你也许可以侥幸ls处理事情:

ls -dt $(find . -type d -exec test -f {}/test.txt ; -print)

但要注意可怕的解析LS风险。

除此之外,您可以使用stat来收集数据信息进行排序,但它的行为将取决于您的操作系统,或者用可以处理文件系统数据的实际编程语言编写一些东西。

最新更新