oz1*_*123 11 command-line find file-search
给定以下结构:
oz123@debian:~/ $ tree .
.
??? a
? ??? a1
? ??? a2
? ??? a3
??? a1
? ??? a11
? ??? a12
? ??? a31
??? b
? ??? b1
? ??? b11
? ? ??? b21
? ? ??? b31
? ??? b12
? ??? b3
??? c
16 directories, 0 files
Run Code Online (Sandbox Code Playgroud)
我发现以下似乎不错的解决方案,但我必须证明没有测试用例会失败。
-links
各州的帮助页面:
您还可以使用“-links”搜索具有一定数量链接的文件。目录通常至少有两个硬链接;他们的 。入口是第二个。如果它们有子目录,每个子目录也有一个硬链接,称为 .. 到其父目录。这 。和 .. 目录条目通常不会被搜索,除非在 find 命令行中提到它们。
oz123@debian:~/ $ find . -type d -links 2
./a/a2
./a/a3
./a/a1
./c
./a1/a31
./a1/a11
./a1/a12
./b/b1/b12
./b/b1/b3
./b/b1/b11/b21/b31
Run Code Online (Sandbox Code Playgroud)
作为您自己的解决方案的补充-links
,我想补充一点,它不适用于不遵循 Unix 目录链接约定的文件系统。从man find
选项来看,-noleaf
这些至少是 CD-ROM、MS-DOS 文件系统和 AFS 卷安装点。
作为参考,这个问题已经通过不同的解决方案进行了讨论,这些解决方案确实速度较慢,并且通常诉诸于 sed / awk 等管道。
归档时间: |
|
查看次数: |
5828 次 |
最近记录: |