Linux: содержание списка подкаталогов с именем?

Я использую Linux для анализа структуры каталогов окон. Структура:

/Documents and settings
  /username1
    /My Documents
    ...
  /username2
    /My Documents
    ...
  ...

Что команда может я выполнять так, чтобы содержание (и sub папки) всех каталогов "My Documents" было перечислено как:

/Documents and Settings/username1/My Documents/filename
/Documents and Settings/username1/My Documents/subdir/filename
/Documents and Settings/username2/My Documents/filename

В основном существует тонна пользователей, но почти ни один ничего не имеет в их папке My Documents. Я просто хочу найти и показать содержание тех пользователь, которые действительно имеют документы.

Править: Каждый каталог "имени пользователя" содержит много подкаталогов. Я только хочу перечислить дерево ниже папки My Documents, но сделать так для всех имен пользователей сразу.

2
задан 18.09.2009, 19:26

5 ответов

Объединение первых двух ответов, использование находит и ls-R:

найдите "/Документы и настройки" - имя "Мои Документы" - должностное лицо ls-R {} \;

Это найдет все каталоги My Documents и перечислит все под ними с полными путями. Вам нужны кавычки, так как имена каталогов имеют пробелы в них.

Править: explination того, как это работает. Это запускается в Документах / и настройках, ища любой файл или каталог, который соответствует Моим Документам. Для каждого это находит, это заменяет путем {} в ls. \; показывает конец команды.

2
ответ дан 08.12.2019, 05:59
ls -R path_to_your_dir

или

ls -lR path_to_your_dir

для лучшего представления

Однако лучшее представление достигается с

find path_to_your_dir

Примечание: рекурсивные средства-R

1
ответ дан 08.12.2019, 05:59

Можно использовать команду #, находят your_dir

0
ответ дан 08.12.2019, 05:59

Если Вы действительно хотите видеть путь и не хотите иметь полный рекурсивный список-R, это, кажется, делает примерно, что Вы хотите, это немного неуклюже хотя:

find . -type d -name '*Documents' ! -empty | (while read d; do echo $d; ls -la $d; done)
0
ответ дан 08.12.2019, 05:59

Если Вы хотите рекурсивный список файлов и папок под Documents and Settings/User/My Документы:

find Documents\ and\ Settings/*/My\ Documents -print

Если Вы только хотите только файлы и папки непосредственно под Documents and Settings/User/My Документы:

ls -dr Documents\ and\ Settings/*/My\ Documents/*

Первый будет включать файл как Documents and Settings/User/My Documents/dir1/file1, тогда как последний перечислит только Documents and Settings/User/My Documents/dir1

0
ответ дан 08.12.2019, 05:59

Теги

Похожие вопросы