对于给定的文件,我只想列出它出现的子目录。我正在使用以下方法搜索文件:
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
来收集数据信息进行排序,但它的行为将取决于您的操作系统,或者用可以处理文件系统数据的实际编程语言编写一些东西。