Wie isoliert man Dateiberechtigungen und Dateinamen aus den Ergebnissen von ls -l?

Wie isoliert man Dateiberechtigungen und Dateinamen aus den Ergebnissen von ls -l?

Ich möchte nur den Dateinamen und die entsprechende Dateiberechtigung sehen. Wie geht das?

ls -l gibt

-rw-rw-r-- 1 jb jb    102 Apr 28 12:48  hello2.txt
-rw-rw-r-- 1 jb jb    102 Apr 28 12:53  hello.txt

Ich würde gerne wie folgt sehen

-rw-rw-r-- 1  hello2.txt
-rw-rw-r-- 1  hello.txt

Antwort1

Der statBefehl ist zB hierfür gedacht:

stat -c '%A %n' *.txt

oder

stat --printf '%A\t%n\n' *.txt

wobei die Formatbezeichner folgende Bedeutung haben

   %A     access rights in human readable form
   %n     file name

Antwort2

Den größten Teil des Weges können Sie zurücklegen, indem Sie „ lssich selbst“ verwenden: ls -lGg --time-style=+Es werden nur die Zugriffsmodi, die Anzahl der Links, die Größe und der Name gedruckt.

Die Verarbeitung der lsAusgabe ist schwierig, da Dateinamen so ziemlich alles enthalten können, sodass Sie bei der Verarbeitung keine Annahmen über sie treffen können. Es wäre besser, findstattdessen zu verwenden, um genau die benötigten Informationen mit-printf:

find . -printf '%M %p\n'

(Mit Optionen wie, -maxdepthdie je nach Bedarf verwendet werden, um die Auflistung einzuschränken.)

Antwort3

Sie können es weiterleiten gawkund die gewünschten Felder ausgeben, etwa so oder ähnlich:

ls -l | gawk '{print $1 " " $2 " " $9}'

verwandte Informationen