Jak skłonić ls do listy katalogów z końcowym ukośnikiem?
13
Moja skorupa jest bash. Jak mogę uzyskać wynik lspokazujący katalogi z końcowym ukośnikiem? Kiedy ja lsw tcshto daje pożądany wynik. Jak mogę to zrobić bashbez użycia argumentów?
Twoja skorupa nie ma tu znaczenia ... man lsprzewiń w dół do-p
don_crissti
czy to jest -Fflaga? Nigdy go nie używam, więc nie pamiętam ...
Jeff Schaller
1
Z końcowym ukośnikiem odwrotnym jak w tytule lub z ukośnikiem końcowym (co ma większy sens) jak w twoim przykładzie?
Gilles „SO- przestań być zły”
@don_crissti Zobacz moją edycję pytania.
CJ7
@ CJ7 - co to jest type lswyjście? Może alias?
don_crissti
Odpowiedzi:
13
Najprostszym rozwiązaniem (podanym już przez @don_crissti w komentarzach) jest:
ls -p
Możesz uzyskać podobny efekt dzięki:
ls -F
Ale to doda również kilka innych wskaźników:
Do każdej nazwy pliku dodaj znak wskazujący typ pliku. Ponadto w przypadku zwykłych plików wykonywalnych dołączaj *. Wskaźniki typu pliku dotyczą /katalogów, @dowiązań symbolicznych,
|FIFO, =gniazd, >drzwi i nic dla zwykłych plików.
Oczywiście, można zrobić łańcuch lswykonać ls -pw linii poleceń z aliasu:
alias ls='ls -p'
To jest tymczasowe i można je usunąć unalias ls.
Prawdopodobnie masz tcshaktywny alias na swoim miejscu.
Co możesz zrobić, umieszczając polecenie w ~/.bashrclub ~/.bash_aliases.
Ten ostatni kawałek przykuł moją uwagę. Nigdy wcześniej nie widziałem ani nie słyszałem ~/.bash_aliases; tylko ~/.bash_profilei / lub ~.bashrc. Czy to jest poprawne?
$ /bin/ls -F
-/ diesel_folks grub presidents user_mailer/0/ dmStaffing/ HJJJH/ prime_scenarios
...# I'm using /bin/ls to make sure I run my system ls # (I actually have it aliased to add options automatically normally)## Just read about your no argument requirement# So you too could alias it, i.e.
alias ls='ls -F'# Put it in your `.bashrc` or `.bash_aliases` file
Czy wiesz, dlaczego tcshdaje mi pożądaną wydajność, a bashnie jest?
CJ7
1
@ CJ7 Ponieważ tcsh i bash używają różnych plików konfiguracyjnych (o różnej składni). Prawdopodobnie masz już podobny alias w swoim .cshrc.
Gilles „SO- przestań być zły”
Próbowałem utworzyć .bashrcplik w moim katalogu domowym, ale nie zadziałał
CJ7,
@ CJ7, czy zrestartowałeś powłokę po dokonaniu tej zmiany?
Jochem Schulenklopper
0
Zarówno
ls --classify
Lub:
ls --indicator-style=slash
Wyjaśnienie
-F,--classify
append indicator (one of */=>@|) to entries
-p,--indicator-style=slash
append / indicator to directories
Inne odpowiedzi mniej więcej to obejmują, ale wolę długie opcje w stylu GNU niż krótkie opcje w stylu BSD w odpowiedziach Przepełnienie stosu, ponieważ są one bardziej zrozumiałe i możliwe do nauczenia / „zapamiętalne” / „możliwe do internalizacji”.
man ls
przewiń w dół do-p
-F
flaga? Nigdy go nie używam, więc nie pamiętam ...type ls
wyjście? Może alias?Odpowiedzi:
Najprostszym rozwiązaniem (podanym już przez @don_crissti w komentarzach) jest:
Możesz uzyskać podobny efekt dzięki:
Ale to doda również kilka innych wskaźników:
Oczywiście, można zrobić łańcuch
ls
wykonaćls -p
w linii poleceń z aliasu:To jest tymczasowe i można je usunąć
unalias ls
.Prawdopodobnie masz
tcsh
aktywny alias na swoim miejscu.Co możesz zrobić, umieszczając polecenie w
~/.bashrc
lub~/.bash_aliases
.źródło
~/.bash_aliases
; tylko~/.bash_profile
i / lub~.bashrc
. Czy to jest poprawne?alias ls='ls --color=auto -p'
Możesz użyć -F, np
źródło
tcsh
daje mi pożądaną wydajność, abash
nie jest?.cshrc
..bashrc
plik w moim katalogu domowym, ale nie zadziałałZarówno
Lub:
Wyjaśnienie
Inne odpowiedzi mniej więcej to obejmują, ale wolę długie opcje w stylu GNU niż krótkie opcje w stylu BSD w odpowiedziach Przepełnienie stosu, ponieważ są one bardziej zrozumiałe i możliwe do nauczenia / „zapamiętalne” / „możliwe do internalizacji”.
źródło