
PHP에서 이 명령을 실행하면
sudo -u db2inst1 ls -t /var/lib/edumate/bdrs/*/*/daily/*NODE* | sort -r
나는 받는다sudo: unable to execute /bin/ls: Argument list too long
ls는 각 고객에 대해 보유하고 있는 모든 일일 백업 파일을 나열합니다. 고객의 디렉터리는 bdrs
디렉터리 아래에 있습니다. 그래서 예전에는 제대로 작동했기 때문에 파일 수가 허용보다 많아진 것 같아요.
하나의 쉘 명령을 사용하여 모든 일일 백업 파일 목록을 얻는 방법이 있습니까?
답변1
확장된 파일 이름이 실제 명령에 포함되지 않도록 변환합니다 find
(현재 쉘은 "글로빙"당신이 원하지 않는 것.
sudo -u db2inst1 find /var/lib/edumate/bdrs/ -ipath '/var/lib/edumate/bdrs/*/*/daily/*NODE*' | sort -r
답변2
zsh를 사용하면 더 쉽습니다. 그것은On
글로벌 한정자정렬 순서를 역 사전식 이름 순서로 변경합니다.
sudo -u db2inst1 zsh -c 'print -l /var/lib/edumate/bdrs/*/*/daily/*NODE*(On)'
그런데 정렬 순서에 관심이 없기 때문에 -t
에 전달할 필요가 없습니다 .ls