
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 つのシェル コマンドを使用して、毎日のバックアップ ファイルのリストを取得する方法はありますか?
答え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