Stellen Sie sich vor, Sie arbeiten an einem System und jemand hat den
ls
Befehl versehentlich gelöscht (/bin/ls
). Wie können Sie eine Liste der Dateien im aktuellen Verzeichnis erhalten? Versuch es.
Ich habe viele Methoden ausprobiert und auch im Internet gesucht, aber nichts. Ich möchte neben dem ls
Befehl fragen, mit welchem Befehl wir alle Dateien auflisten können.
shell
command-line
ls
Eduard Florinescu
quelle
quelle
echo *
ist dies in der Praxis nützlich, wenn Sie Ihr System so vermasselt haben, dass Sie kein Programm ausführen können (z. B. Sie haben das Programm entferntlibc.so
oderld.so
), aber Sie haben immer noch eine laufende Shell.echo **/*
dies auch rekursiv tun.Weniger TAB TAB
Findet den Schalter -ls unabhängig von / bin / ls, hat ein eigenes Format und zeigt detaillierte Informationen an:
Ein weiteres Detail, das die Möglichkeit zeigt, ist
stat
quelle
Um es so aussehen zu lassen
ls
, würde ich die Bash-for
Schleife verwenden:Wenn das nicht funktioniert, würde ich versuchen, Python
;)
:quelle
import glob; print '\n'.join(glob.glob('/home/*'))
würde genauso gut funktionieren.Good ol 'vim;) (mit Sortieren, Durchsuchen usw.)
quelle
Wahrscheinlich möchten Sie jedoch die gewünschten einschränkenden Parameter eingeben.
quelle
lsattr ./*
getfacl ./*
zeigt auch Berechtigungen angrep -l '.*' ./*
awk 'FNR==1 {print FILENAME}' ./*
arbeitet mit GNU awkdebugfs /dev/sdX
Ersetzen Sie sdX durch die Partition, auf der Sie ein ls ausführen möchten. Dann können Sie ls in debugfs ausführenlynx ./
mc
vorausgesetzt, Sie haben Mitternachtskommandeur installiertquelle
Ähnlich wie die
echo
Version, druckt jedoch zur besseren Lesbarkeit einen Eintrag pro Zeile aus:oder
Rekursiv (für Bash 4+; für andere Shells ist entweder eine andere Option erforderlich oder Globstar ist standardmäßig aktiviert):
quelle
**
nicht erforderlich , ein einfacher Befehl wird in alle Verzeichnisse zurückgeführt, wennglobstar
festgelegt. Wechseln Sie einfach zuprintf '%s' **
.Wie wäre es mit
dir
Befehl? :)/bin/dir
quelle
Nun, wenn ich ls nicht im Shell-Modus von Emacs verwenden könnte, würde ich vielleicht in den Eshell-Modus oder einfach in einen Dired-Modus wechseln.
quelle
Wenn ich eine Bash-Shell gestartet habe (oder eine andere Shell mit Abschluss), würde ich wahrscheinlich nur '*' und dann tab eingeben.
Oder wie ich normalerweise mit X angefangen habe, kann ich auch nur 'Nautilus' machen, aber OK, das ist für Menschen.
Ich kann auch versuchen, / usr / bin / lsattr
Aber in der realen Welt wäre das, was ich wirklich tun würde , wenn mir so etwas einfallen würde, mit Sicherheit:
quelle
In bash oder einer Shell mit ähnlicher Tabulatorvervollständigung müssen Sie überhaupt keinen echten Befehl verwenden:
wibble
Wenn Sie auf zwei Tabulatoren klicken, wird eine Liste der Dateien im aktuellen Verzeichniswibble /bin/
angezeigt , und wenn Sie auf zwei Tabulatoren klicken, sehen Sie, was passiert links von / bin. Ich befand mich einmal in dieser Situation (eigentlich hatte ich / bin vollständig zusammen mit einigen anderen Dingen getötet) und begann mit dem vorgeschlagenenecho *
Ansatz @STATUS_ACCESS_DENIED, fand aber schließlich die Tab-Vervollständigung praktischer.quelle
Eine weitere Möglichkeit , mit
tree
nicht überall hier erwähnt, es geht rekursiv und im Gegensatz zu finden oder ls Sie haben keine Fehler (wie:Permission denied
,Not a directory
) auch den absoluten Pfad für den Fall bekommen Sie die Dateien fütternxargs
oder anderen BefehlDie Optionen bedeuten:
quelle