我正在使用 linux 分析 windows 目录结构。结构如下:
/Documents and settings
/username1
/My Documents
...
/username2
/My Documents
...
...
我可以执行什么命令以便列出所有“我的文档”目录的内容(和子文件夹),如下所示:
/Documents and Settings/username1/My Documents/filename
/Documents and Settings/username1/My Documents/subdir/filename
/Documents and Settings/username2/My Documents/filename
基本上有很多用户,但几乎没有人在“我的文档”文件夹中有任何内容。我只想找到并显示那些用户的内容做有文件。
编辑:每个“用户名”目录都包含许多子目录。我只想列出“我的文档”文件夹下的树,但一次列出所有用户名。
答案1
结合前两个答案,使用 find 和 ls -R:
查找“/Documents and settings”-name“我的文档”-exec ls -R {} \;
这将找到所有我的文件目录并列出其下的所有内容,并附上完整路径名。您需要使用引号,因为目录名中有空格。
编辑:解释一下它的工作原理。它开始于/文档和设置,寻找任何匹配的文件或目录我的文件。对于找到的每个路径,它会用 ls 中的 {} 替换路径。\; 表示命令的结束。
答案2
只是为了添加到集合中,ls -R 并没有真正产生好的输出,所以我使用树命令
find "/Documents and settings" -name "My Documents" -exec tree -f -i --noreport {} \;
答案3
ls -R path_to_your_dir
或者
ls -lR path_to_your_dir
以获得更好的视野
然而,最佳视野是
find path_to_your_dir
注意:-R 表示递归
答案4
如果您确实想查看路径名但又不想有完整的递归 -R 列表,这似乎大致可以满足您的要求,但有点笨重:
find . -type d -name '*Documents' ! -empty | (while read d; do echo $d; ls -la $d; done)