Структура каталога CentOS как дерево?

Есть ли эквивалент дерева в CentOS?

Ответы

Ответ 1

Как вы можете видеть здесь. Дерево не установлено по умолчанию в CentOs, поэтому вам нужно будет найти RPM и установить его вручную

Ответ 2

Если дерево не установлено в вашей системе Centos (я обычно рекомендую устанавливать серверы на минимальный установочный диск), вы должны ввести в командной строке следующее:

# yum install tree -y

Если это не устанавливается, потому что у вас нет надлежащего репозитория. Я бы использовал репозиторий Dag Wieers:

http://dag.wieers.com/rpm/FAQ.php#B

После этого вы можете выполнить свою установку:

# yum install tree -y

Теперь вы готовы бросить. Всегда читайте страницу руководства: http://linux.die.net/man/1/tree

Так просто следующее возвращает дерево:

# tree

В качестве альтернативы вы можете вывести это в текстовый файл. Там тоже много вариантов. Снова прочитайте свою страницу руководства, если вы ищете что-то другое, чем выход по умолчанию.

# tree > recursive_directory_list.txt

(^^ в текстовом файле для последующего просмотра ^^)

Ответ 3

Вы можете создать свое собственное примитивное "дерево" (для удовольствия:))

#!/bin/bash
# only if you have bash 4 in your CentOS system
shopt -s globstar
for file in **/*
do
    slash=${file//[^\/]}
    case "${#slash}" in
        0) echo "|-- ${file}";;
        1) echo "|   |--  ${file}";;
        2) echo "|   |   |--  ${file}";;
    esac
done

Ответ 4

У вас есть дерево в базовом репо.

Показать (имя пакета yum list):

# yum list tree
Available Packages
tree.i386               1.5.0-4               base

Установите его:

yum install tree

(проверено на CentOS 5 и 6)

Ответ 5

Так как tree по умолчанию не установлен в CentOS...

[[email protected] test]$ tree
-bash: tree: command not found
[[email protected] test]$ 

Вы также можете использовать следующую команду ls для получения почти аналогичного вывода с помощью tree

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'

Пример:

[[email protected] test]$ ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'
   .
   |-directory1
   |-directory2
   |-directory3
[[email protected] directory]$