0
我想列出父目录及其子目录中的所有文件。但是,我从另一个位置运行此命令。所以,首先,我需要遍历目录(从我想要运行此命令的位置)。递归搜索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目录,这种方式(通过使用通配符):
cd ../../../;cd level1_dir1/*;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"
但它打印输出的结果只适用于level2中的第一个目录(即level2_dir1)
如何让它列出所有子目录的文件?
谢谢。
你的意思是'find。 -name'*''?或者'find ../../../ -name'*'' – Bart 2013-03-18 18:02:50
我首先要改变目录到达父目录,从那里我将开始递归搜索所有文件。 – 2013-03-18 18:05:05
你不需要'cd'回来。 'find'可以处理这个问题。看到我以前的评论。 – Bart 2013-03-18 18:08:25