Im Moment benutze ich ls -lt /my/directory
(siehe unten), dann analysiert PHP die Ausgabe. Aber inkonsistent, weil das Trennzeichen Leerzeichen ist und zwischen zwei Feldern möglicherweise zwei oder mehr Leerzeichen stehen.
Die Lösung gibt nur den Dateinamen und seine Größe aus . Wie kann ich Dateien (mit Platzhalter) und ihre volle Größe in der Befehlszeile auflisten?
Also statt
-rw------- 1 db2inst1 db2iadm1 855658496 Apr 22 02:31 MONTE.0.db2inst1.NODE0000.CATN0000.20120422023005.001
Ich bekomme
855658496 MONTE.0.db2inst1.NODE0000.CATN0000.20120422023005.001
command-line
shell-script
ls
Radek
quelle
quelle
ls
Ausgabe . Stattdessen sollten Sie sich fragen, wie Sie die gewünschten Informationen auf robustere Weise direkt mit PHP abrufen können, möglicherweise über StackOverflow.ls
oder diestat
Ausgabe.Antworten:
Wie andere angemerkt haben, ist es bei einer dynamischen Webanwendung viel besser, die PHP-Funktionen für den Zugriff auf die Dateigröße zu verwenden.
Verwenden Sie es jedoch nicht, wenn Sie es durch Ausführen eines Shell-Befehls erhalten möchten
ls
. Verwendenstat
Sie stattdessen und sagen Sie genau, was Sie wollen:quelle
-t
im ursprünglichenls
Aufruf verwendete kann auf diese Weise kaum reproduziert werden.ssh root@monte stat -c \'%n %s\' /var/lib/edumate/backup/*MONTE*
. Vielen Dank.%Y
(Format der letzten Änderung, Sekunden seit Epoche) zur Formatzeichenfolge hinzufügen .