hp-ux comando de localização não está funcionando em uma lista de arquivos

0

Estamos usando a seguinte configuração do hp-ux:

HP-UX dxp10hxw B.11.23 U 9000/800 1446354274 unlimited-user license

E tentando executar um comando de localização simples da seguinte forma:

find . ! -type l -perm -0020 -exec ls -l {} \;

Isto supostamente produz uma lista de todos os arquivos / pastas no diretório atual, que têm permissão de escrita em grupo. No entanto, ele também lista os arquivos que não possuem permissão para gravação em grupo

Fizemos algumas pesquisas e tentamos variações do comando acima, como:

find . ! -type l -perm -g+w -exec ls -l {} \;
find . ! -type l -perm -g=w -exec ls -l {} \;

Mas nada parece estar funcionando. Nós tentamos googling, mas não muito resultados do google para hp-ux. nos fóruns da hp-ux, o mais próximo que conseguimos encontrar foi: link mas as sugestões mencionadas não ajudam também.

Nós tentamos encontrar um arquivo de cada vez. Por exemplo, se houver um arquivo temp.txt com permissões 711 e ele aparecer nos resultados quando executarmos o comando acima. Em seguida, modificamos o comando para procurar apenas esse arquivo em vez de todos os arquivos no diretório atual e o comando abaixo

find ./temp.txt ! -type l -perm -g+w -exec ls -l {} \; 

não produziu nenhum resultado. Em seguida, tentamos fornecer um pequeno conjunto de arquivos na pasta e a lista de arquivos recebidos como saída estava correta, mas assim que o número de arquivos aumentou na pasta, os resultados estavam incorretos novamente. Então, pelo menos, percebemos isso que, para uma grande lista de arquivos (cerca de 600 arquivos) em uma única pesquisa, encontrar estava quebrando Por favor ajude!

    
por JavaTec 21.03.2016 / 22:19

2 respostas

2

O comando

find . ! -type l -perm -0020 -exec ls -l {} \;

está perto . Mas se você adicionar a opção -d ao comando ls , ele funcionará, não dizendo para listar os conteúdos dos diretórios.

O comando como determinado será recorrente por meio de subdiretórios; a questão só menciona arquivos (e pastas ...). Você pode ter significado

find . -type f -perm -0020 -exec ls -l {} \;

para ignorar completamente os diretórios. O comando fornecido listará os diretórios que também possuem permissões graváveis por grupo.

    
por 21.03.2016 / 22:42
2
find . ! -type l -perm -g=w -exec ls -lLd {} \;

em /tmp contendo ~ 6000 arquivos, o comando acima funcionou para mim no servidor HP-UX 11.11. Seu problema não está vindo do número de arquivos. 600 arquivos são apenas uma gota no mar, a menos que sua quantidade de memória física seja realmente baixa.

    
por 21.03.2016 / 22:46

Tags