ls все, що є _not_ - посилання


12

Чи lsє спосіб відобразити заперечні умови на кшталт "усі файли, які не є симпосиланнями"? Я останній багато використовую в каталозі проектів, але також будуть корисні й інші заперечення.

Наразі моє дослідження лише призвело до створення псевдоніма до чогось "на зразок":

find . -maxdepth 1 ! -type l | sort # (...)

але очевидно, таким чином я не отримую забарвлення ls, форматування стовпців тощо ...

Я іноді на Bash v3 на OS X 10.8.2 та Bash v4 на Pangolin.

Відповіді:


14

Замість того, щоб передати його sort, використовуйте ls.

find . -maxdepth 1 \! -type l -exec ls -d {} +

find . -maxdepth 1 \! -type l | xargs ls -d

Якщо ви використовували оболонку zsh, ви можете використовувати їх непереносні глобальні розширення:

ls -d *(^@)

Thx 4 відповідь! Чому ти втікаєш !? Здається, працює навіть без .. Чим я ризикую, не уникаючи цього? Цікаво, як ви використовуєте фінал, +а ні \;, поясніть, будь ласка?
Robottinosino

2
@Robottinosino Змушує +його відправляти всіх в одну lsкоманду, а не виконувати її окремо для кожного файлу (таким чином ls може робити стовпці та сортування). Я врятувався! тому що це особливий персонаж для деяких снарядів, навіть якщо ваш, здається, сприймає це чудово.
Випадково832

Готча. Чудові речі! Чи погоджуєтесь ви, що хоч трохи трудомістко, просто заперечувати присудок у простому ls? Чи може бути кращий спосіб?
Robottinosino

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