天天看点

find -name a.txt的误用(没考虑软链), 导致浪费0.5小时

      假设当前目录是/data,  在这个目录下有1000个“文件夹”目录, 名字分别为0-999, 用cd可以进入, 比如cd 999就进入了999这个目录, 在这1000个目录下, 都有a.txt文件。 为了对这些所有的a.txt文件进行统计, 我用了如下命令:

      find -name a.txt | xargs cat | grep xxx | wc -l

      我以为上述命令对了,但是, 这里有问题, 并因此被误导了至少0.5小时。 原来, 在这1000个目录中, 有的是真的目录, 有的是软链, 而用上述命令是没有包含软链在内的, 所以, 需要改为:

       find -L -name a.txt | xargs cat | grep xxx | wc -l

      如上就包含了普通文件夹目录和软链。

      吃一堑长一智!

继续阅读