Wyobraź sobie, że pracujesz w systemie i ktoś przypadkowo usunął
ls
polecenie (/bin/ls
). Jak uzyskać listę plików w bieżącym katalogu? Spróbuj.
Próbowałem wielu metod, a także szukałem w Internecie, ale nic. Chcę zapytać obok ls
polecenia, którego polecenia możemy użyć, aby wyświetlić listę wszystkich plików.
shell
command-line
ls
Eduard Florinescu
źródło
źródło
echo *
jest przydatny w praktyce, kiedy spieprzyłeś swój system, abyś nie mógł wykonać żadnego programu (np. Usunąłeślibc.so
lubld.so
), ale nadal masz działającą powłokę.echo **/*
tego rekurencyjnie.mniej TAB TAB
przełącznik find -ls jest niezależny od / bin / ls i ma swój własny format oraz wyświetla szczegółowe informacje:
innym, szczegółami wskazującymi na możliwość, jest
stat
źródło
Aby to wyglądało
ls
, użyłbymfor
pętli Basha :Jeśli to nie zadziała, wypróbuję Python
;)
:źródło
import glob; print '\n'.join(glob.glob('/home/*'))
działałoby równie dobrze.Good ol 'vim;) (z sortowaniem, przeglądaniem itp.)
źródło
Chociaż prawdopodobnie chcesz wprowadzić dowolne parametry ograniczające, których potrzebujesz.
źródło
lsattr ./*
getfacl ./*
wyświetli również uprawnieniagrep -l '.*' ./*
awk 'FNR==1 {print FILENAME}' ./*
współpracuje z GNU awkdebugfs /dev/sdX
zamień sdX na dowolną partycję, na której chcesz zrobić ls, wtedy możesz ls wewnątrz debugfslynx ./
mc
zakładając, że masz zainstalowany dowódca północyźródło
Podobne do
echo
wersji, ale drukuje jeden wpis w wierszu dla większej czytelności:lub
Rekurencyjnie (dla bash 4+; inne powłoki albo potrzebują innej opcji, aby to ustawić, albo domyślnie mają włączoną globstar):
źródło
**
znaku „/ *”, proste powróci do wszystkich katalogów, jeśliglobstar
jest ustawione. Po prostu zmień naprintf '%s' **
.Co powiesz na
dir
dowodzenie? :)/bin/dir
źródło
Cóż, gdybym nie mógł użyć ls w trybie powłoki emacsa, mógłbym przejść do trybu eshell lub po prostu dired.
źródło
Jeśli mam uruchomioną powłokę bash (lub dowolną inną powłokę z ukończeniem), prawdopodobnie po prostu wpisałbym „*”, a następnie tab.
Lub, jak zwykle mam X, mogę również zrobić „nautilus”, ale OK, to jest dla ludzi.
Mogę także wypróbować / usr / bin / lsattr
Ale w prawdziwym świecie to, co naprawdę zrobiłbym, gdyby coś takiego mi się wydarzyło, to na pewno:
źródło
W bash lub powłoce z podobnym uzupełnianiem tabulatorów nie musisz wcale używać prawdziwego polecenia:
wibble
po dwóch kartach pojawi się lista plików w bieżącym katalogu, awibble /bin/
po dwóch kartach pokaże ci się na lewo od / bin. Kiedyś znalazłem się w tej sytuacji (właściwie zabiłem / bin całkowicie wraz z kilkoma innymi rzeczami) i zacząłem stosowaćecho *
podejście sugerowane przez @STATUS_ACCESS_DENIED, ale ostatecznie uznałem, że uzupełnianie tabulacji jest wygodniejsze.źródło
Innym sposobem z
tree
, niewymienione nigdzie tutaj, to idzie rekurencyjnie iw przeciwieństwie do znalezienia lub ls nie masz żadnych błędów (takich jak:Permission denied
,Not a directory
) można również uzyskać bezwzględną ścieżkę w przypadku, gdy chcesz karmić plikówxargs
lub innych poleceńopcje oznaczają:
źródło