以递归方式搜索Linux中父目录中的文件

时间:2013-03-18 17:53:25

标签: linux

我正在尝试列出父目录及其子目录中的所有文件。但是,我从另一个位置运行此命令。所以,首先,我需要遍历目录(我想从那里运行此命令)。

请注意我使用的是find命令而不是ls,因为我还要列出前面每个文件的绝对路径。使用ls命令无法做到这一点。

这是我正在做的事情:

cd ../../../;cd level1_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"

此命令不显示任何输出。

这是目录结构:

level1_dir1

这有多个子目录:

level2_dir1
level2_dir2

....

level2_dir10

这些子目录中的每个子目录中都有子目录和文件。

然而,现在如果我这样做:

cd ../../../;cd level1_dir1/level2_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"

它将为level2_dir1中的所有子目录正确执行递归,并显示如下输出:

date level1_dir1/level2_dir1/path/to/file/filename

所以,我想以这种方式打印所有level2目录(通过使用wild字符):

cd ../../../;cd level1_dir1/*;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"

但它仅打印出level2中第一个目录的结果(即level2_dir1)

如何让它列出所有子目录的文件?

感谢。

1 个答案:

答案 0 :(得分:0)

这个怎么样?

find ../../../level1_dir1 -printf "%TY-%Tm-%Td\t%p\n"

如果你想要所有的文件,你甚至不需要在find命令中使用-name。如果您不想查看目录而只想查看文件,只需在-printf之前添加“-type f”。

希望这会有所帮助......

相关问题