
Quando executo este comando do php
sudo -u db2inst1 ls -t /var/lib/edumate/bdrs/*/*/daily/*NODE* | sort -r
eu recebisudo: unable to execute /bin/ls: Argument list too long
ls lista todos os arquivos de backup diários que temos para cada cliente. O cliente tem seu diretório no bdrs
diretório. Então acho que o número de arquivos ficou maior do que o permitido porque funcionava corretamente.
Existe alguma maneira de obter uma lista de todos os arquivos de backup diários usando um comando shell?
Responder1
Converta-o find
para que os nomes dos arquivos expandidos não estejam no comando real (no momento o shell é "globulando"O que você não quer.
sudo -u db2inst1 find /var/lib/edumate/bdrs/ -ipath '/var/lib/edumate/bdrs/*/*/daily/*NODE*' | sort -r
Responder2
É bem mais fácil com zsh. Isso éOn
qualificador globalaltera a ordem de classificação para a ordem inversa dos nomes lexicográficos.
sudo -u db2inst1 zsh -c 'print -l /var/lib/edumate/bdrs/*/*/daily/*NODE*(On)'
A propósito , não faz sentido passar -t
para ls
, já que você não se importa com sua ordem de classificação.