Localizando diretórios não vazios sem subdiretórios e classificação específica

2

Eu tenho um problema com o meu "trabalho de casa" em estudos.

Eu tenho que listar todos os diretórios não vazios de /var e /usr , que não possuem subdiretórios e seu proprietário não é usuário root. Além disso, para cada diretório, tenho que mostrar a profundidade na árvore de diretórios, o número do nó i, o tamanho, as permissões nos formatos legíveis e octal e o caminho absoluto para esse diretório e classificá-lo descendente pelo número do nó i.

Aqui está o que eu fiz atualmente:

find /{us,va}r -type d \! -user root \! -empty -printf "%d %i %k %M %m %u %h/%f\n" | sort -rn

Agora, só preciso eliminar diretórios com subdiretórios e classificá-los por número de nó i .

Então, aqui vem as perguntas:

  1. Como posso eliminar diretórios com subdiretórios dessa lista?
  2. Como posso classificar essa lista por i-node, que está na segunda coluna?

Obrigado pela ajuda.

    
por Sebastian Potasiak 24.03.2013 / 23:45

2 respostas

1

Então, eu estava certo. Tudo o que eu tinha que fazer era adicionar -links 2 argumento a find , então ele produziria diretórios com apenas 2 "hard links" (que são não hard links - é subdiretório e Cada diretório tem pelo menos 2 subdiretórios - '.' e '..') e -k 2 to sort , então ele classificará pela segunda coluna.

O comando inteiro é assim:

find /{us,va}r -links 2 -type d \! -user root \! -empty -printf "%d %i %k %M %m %u %h/%f\n" | sort -rnk 2
    
por 28.03.2013 / 16:50
0

OK, acho que encontrei uma solução baseada em Python para o seu problema.

Salvar este snippet como, por exemplo, x.py e chmod + x x.py

#!/usr/bin/python
import sys
x=[]
for line in sys.stdin:
  x.append(line.rstrip())

y=x[:]
for i in x:
  mark=x.index(i)
  for j in y:
    if i.split()[6]  in j.split()[6]  and i != j:
      if i in y: y.remove(i)

for j in y:
  print j

Em seguida, canalize seu comando find (sem o link bit) através dele e ordene

find /{us,va}r -type d \! -user root \! -empty -printf "%d %i %k %M %m %u %h/%f\n" | x.py | sort -k2,2n
    
por 25.03.2013 / 03:49