Як змусити ls перелічити каталоги з кінцевою косою нахилом вперед?


13

Моя оболонка є bash. Як я можу отримати висновок lsдля показу каталогів із зворотним нахилом вперед? Коли я lsв tcshце дає бажаний результат. Як я можу зробити так, щоб це сталося, bashне використовуючи жодних аргументів?

напр.

bin/
lib/
src/
file1.txt
file2.txt

7
Ваша оболонка тут не стосується ... man lsтоді прокрутіть униз до-p
don_crissti

це -Fпрапор? Я ніколи його не використовую, тому не можу згадати ...
Джефф Шаллер

1
З кінцевою косою рисою відповідно до вашої назви, або з косою косою рисою (яка має більше сенсу) відповідно до вашого прикладу?
Жил "ТАК - перестань бути злим"

@don_crissti Дивіться мою редакцію питання.
CJ7

@ CJ7 - що type lsвиводиться? Може, псевдонім?
don_crissti

Відповіді:


13

Найпростіше рішення (як це вже дало @don_crissti у коментарях):

ls -p

Ви можете отримати подібний ефект за допомогою:

ls -F

Але це додасть і деякі інші показники:

Додайте символ до кожного імені файлу із зазначенням типу файлу. Також до звичайних файлів, які виконуються, додайте *. Індикатори типу файлів призначені /для каталогів, @символічних посилань, |для FIFO, =розеток, >дверей і нічого для звичайних файлів.


Звичайно, ви можете змусити lsвиконати рядок ls -pу командному рядку з псевдонімом:

alias ls='ls -p'

Це тимчасово і може бути стерто unalias ls.
Можливо, у вас tcshє активний псевдонім.

Що ви можете зробити, помістивши команду в ~/.bashrcабо ~/.bash_aliases.


Цей останній шматочок привернув мою увагу. Я ніколи не бачив і не чув про це ~/.bash_aliasesраніше; тільки ~/.bash_profileта / або ~.bashrc. Це правильно?
голоси

1
@ tjt263 Поширена практика розміщувати всі псевдоніми у спеціальному файлі, похідному від bashrc . Вміст може змінюватися залежно від ваших потреб .

Щоб зберегти кольори:alias ls='ls --color=auto -p'
mkczyk

2

Можна використовувати -F, наприклад

$ /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

Чи знаєте ви, чому tcshдаєте мені бажаний вихід, а bashні?
CJ7

1
@ CJ7 Тому що tcsh і bash використовують різні файли конфігурації (з різним синтаксисом). У вас, ймовірно, вже є подібний псевдонім у вашому .cshrc.
Жил "ТАК - перестань бути злим"

Я спробував створити .bashrcфайл у своєму домашньому каталозі, але це не вийшло
CJ7

@ CJ7, ви перезапустили оболонку після внесення цієї зміни?
Йохем Шуленклоппер

0

Або

   ls --classify

Або:

   ls --indicator-style=slash

Пояснення

   -F, --classify
          append indicator (one of */=>@|) to entries

   -p, --indicator-style=slash
          append / indicator to directories

Інші відповіді більш-менш висвітлюють це, але я віддаю перевагу довгим варіантам у стилі GNU над короткими параметрами стилю BSD у відповідях на переповнення стека, оскільки вони є більш зрозумілими та навчаються / "запам'ятовуються" / "інтерналізуються".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.