1. Introdução ao comando tree
O comando tree é um comando usado para exibir a estrutura de diretórios. Ele pode exibir todos os arquivos e subdiretórios em um diretório especificado na forma de um diagrama de árvore. Este comando não é muito usado,mas ainda é muito útil quando contamos a estrutura de diretórios de um determinado diretório.Precisamos usá-lo se precisarmos copiar completamente a estrutura de diretórios de um determinado diretório,mas não somos responsáveis pelo arquivos no diretório.Ordem.
2. Exemplo de uso do comando tree
1. Verifique a versão do comando
[root@s152 ~]# tree --version
tree v1.6.0 © 1996 - 2011 por Steve Baker, Thomas Moore, Francesc Rocher, Kyosuke Tokoro
2. Obtenha ajuda de comando
[root@s152 ~]#árvore --help
3. Veja a estrutura do diretório de teste do diretório
[root@s152 ~]#
teste de teste de árvore
├── nível1-1
│ ├── nível2-1
│ ├── nível2-2
│ └── nível2-3
├── nível1-2
│ ├── nível2-1
│ ├── nível2-2
│ └── nível2-3
└── nível1-3
├── nível2-1
├── nível2-2
└── nível2-3
12 diretórios, 0 arquivos
4. Exiba apenas o caminho completo do diretório
Se precisarmos obter recursivamente toda a estrutura de diretórios sob o diretório, podemos usar o seguinte comando. -f significa imprimir o caminho completo; -d significa imprimir apenas o diretório, não o arquivo; -i significa omitir o anterior linha horizontal.
[root@s152 ~]# tree -fid teste
teste
teste/nível1-1
teste/nível1-1/nível2-1
…
teste/nível1-3/nível2-3
12 diretórios
5. Não imprima informações estatísticas
[root@s152 ~]# tree --noreport teste
teste
├── a.txt
├── nível1-1
│ ├── bb.txt
│ ├── nível2-1
│ ├── nível2-2
│ │ └─ ─ ccc.txt
│ └── nível2-3
…
6. Imprimir informações de inode
O parâmetro inodes pode ser usado para imprimir o número de inodes de arquivos e diretórios. O número de inodes geralmente é usado para excluir arquivos quando o nome do arquivo exibe caracteres ilegíveis. Você pode usar o comando #find -inum inodes_number -delete para excluir arquivos ilegíveis.
[root@s152 ~]# tree --inodes test
test
├── [8576899] a.txt
├── [16851797] nível1-1
│ ├── [16878307] bb.txt
│ ├── [25166001] nível2- 1
│ ├── [303089] nível2-2
│ │ └── [323552] ccc.txt
│ └── [8422822] nível2-3
…
12 diretórios, 3 arquivos
7. Filtre diretórios vazios ao imprimir
[root@s152 ~]# tree --prune teste
8. Imprima atributos de arquivo, proprietário e grupo ao imprimir e exibir
9. Imprima primeiro o diretório e depois os arquivos.
[root@s152 ~]# tree --dirsfirst test
test
├── nível1-1
│ ├── nível2-1
│ ├── nível2-2
│ │ └── ccc.txt
│ ├── nível2-3
│ └ ── bb.txt
├── nível1-2
…
12 diretórios, 3 arquivos
3. Sintaxe de uso e descrições de parâmetros comuns
1. Use gramática
#tree [opções] [diretório]
#tree [opções] [diretório] -o nome do arquivo
2. Exibir descrição do parâmetro
na tabela a seguir
parâmetro | Descrição do parâmetro |
---|---|
-a | Liste todos os arquivos. |
-d | Apenas diretórios são listados. |
-eu | Siga links simbólicos como diretórios. |
-f | Imprima o prefixo do caminho completo de cada arquivo. |
-x | Apenas permaneça no sistema de arquivos atual. |
-Nível L | Apenas diretórios de nível inferior profundos. |
-R | Execute novamente a árvore quando o nível máximo de diretório for atingido. |
-Padrão P | Liste apenas os arquivos que correspondem ao padrão fornecido. |
-Eu padrão | Não liste arquivos que correspondam ao padrão fornecido. |
--noreport | Desative a contagem de arquivos/diretórios no final da lista em árvore. |
--charset X | Use charset X para terminal/HTML e saída de linha recuada. |
--filelimit# | Não tenha mais de # arquivos no diretório. |
--timefmt | Imprima e formate a hora de acordo com o formato <f>. |
-o nome do arquivo | Saída para arquivo em vez de stdout. |
--de | Imprimir tamanho do diretório. |
--ameixa seca | Remova diretórios vazios da saída. |
3. Descrição dos parâmetros do arquivo
parâmetro | Descrição do parâmetro |
---|---|
-q | Imprima caracteres não imprimíveis como "?" |
-N | Imprima caracteres não imprimíveis como estão. |
-Q | Cite o nome do arquivo entre aspas duplas. |
-p | Proteção de impressão para cada arquivo. |
-você | Exibe o proprietário do arquivo ou o número UID. |
-g | Exibe o proprietário do grupo de arquivos ou o número GID. |
-s | Imprima o tamanho de cada arquivo em bytes. |
-h | Imprima as dimensões de uma forma que seja mais fácil de ler. |
--e | Como -h, mas usa unidades SI (potências de 1000). |
-D | Imprima a data da última modificação ou (-c) mudança de status. |
-F | Anexar "/", "=", "*", "@", " |
--inodes | Imprima o número do inode de cada arquivo. |
--dispositivo | Imprima o número de ID do dispositivo ao qual cada arquivo pertence. |
4. Descrição do parâmetro de classificação
parâmetro | Descrição do parâmetro |
---|---|
-v | Classifique os arquivos alfanumericamente por versão. |
-r | Classifique os arquivos em ordem alfanumérica inversa. |
-t | Classifique os arquivos pela hora da última modificação. |
-c | Classifique os arquivos pela hora da última mudança de status. |
-VOCÊ | Deixe o arquivo sem classificação. |
--dirsfirst | Lista os diretórios antes dos arquivos (-U desativa). |
5. Descrição dos parâmetros das opções gráficas
parâmetro | Descrição do parâmetro |
---|---|
-eu | Não imprima linhas de recuo. |
-A | Imprima linhas recuadas de gráficos de linha ANSI. |
-S | Imprima usando linhas de recuo gráfico ASCII. |
-n | Sempre desligue a coloração (substituição -C). |
-C | O sombreamento está sempre ativado. |
6. Descrição do parâmetro da opção XML/HTML
parâmetro | Descrição do parâmetro |
---|---|
-X | Imprima uma representação XML da árvore. |
-HbaseHREF | Imprima o formato HTML com baseHREF como diretório principal. |
-Corda T | Substitua o título HTML padrão e o título H1 por strings. |
--nolinks | Desative hiperlinks na saída HTML. |
4. Prática de copiar a estrutura de diretórios com base no comando tree
Suponha que um sistema tenha concluído os testes de integração e precise ser implantado on-line no ambiente de produção. O sistema possui um grande diretório para armazenamento de arquivos, que contém vários subdiretórios, uma grande quantidade de dados foi gerada durante o teste e o volume total de dados ultrapassou 5 G. A implantação do ambiente de produção precisa apenas da estrutura de diretórios dos arquivos armazenados e não dos arquivos de teste armazenados nele. O que devo fazer neste momento? Aqui apresentaremos o uso do comando tree para escrever scripts para atender a esse requisito.
- Ver o tamanho desta pasta
[dados root@s152]# du -sh *
- Copiar estrutura de diretório para documento de texto
[dados root@s152]# tree -fid --noreport datafiles -o datafiles.txt
- Copie o documento de texto para o caminho do diretório a ser armazenado no servidor de produção
[root@s152 data]# scp datafiles.txt 192.168.0.152:/tmp/
#Este é apenas um teste de simulação. Basta alterar o endereço IP para o host e diretório para o qual você realmente precisa copiar.
- Crie um diretório usando o comando mkdir -p
[root@s152 tmp]# mkdir -p
cat datafiles.txt
- Compare o número de diretórios
[root@s152 tmp]# tree /tmp/datafiles |diretórios grep
235 diretórios, 0 arquivos
[root@s152 tmp]# tree /data/datafiles |diretórios grep
235 diretórios, 3138 arquivos