Як я можу зробити лише файли відображення?


24

Я думаю, що має бути спосіб зробити так, щоб ls відображали лише не-каталоги, але сторінка man не робить це очевидним


Не впевнений ls, але ви можете легко зробити це за допомогою fileкоманди: file /directory/containing/the/files -maxdepth 1 -not -type d.
Геннінг Кокербек

1
Іншим способом було б фільтрувати вихід lsчерез grep, щось подібне ls -1F /directory/containing/the/files | grep -vE /$. Але майте на увазі, що аналіз виходу ls може бути складним .
Геннінг Кокербек

Відповіді:


37
ls -p | grep -v /

Використовуючи ls -pвказівку lsдля додавання косої риски до записів, що є каталогом, а за допомогою функції " grep -v /Показує" grepдля повернення лише рядків, що не містять косу рису.


Я перевірив цю, тому що це моя улюблена відповідь (поки я не відкликав їх усіх), але зараз намагаюся знайти спосіб розмістити її в стовпцях і змінити порядок виведення ...
думає, що було

"Ви можете використовувати 1 перемикач для списку одного стовпця" Вибачте, я намагався розібратися, що ви мали на увазі під цим, я б вдячний і на прикладі / поясненні, якщо ви хочете, я знаю лише, що це перемикач щодо програмування на С
вважаєinininary

@sdkks Ви не потребуєте 1перемикача під час передачі даних про вихід, оскільки це буде за замовчуванням для одного стовпця в цій ситуації. Якщо це ви мали на увазі.
thomasrutter

@thinksinbinary не впевнений, як зробити його з декількома колонками, але ви можете шукати або задавати своє окреме питання, і хтось дізнається.
thomasrutter

7

Ви можете спробувати це:

find . -maxdepth 1 -not -type d

І нанесіть це на спеціальний псевдонім.

Але якщо ви дійсно зацікавлені у використанні lsкоманди, ось:

ls -p | egrep -v /$


6

Як варіант:

ls -lAh | grep -v '^d'

Цей метод перелічено в

  • -l Формат довгого списку
  • -A Відображає майже всі (показувати приховані файли, але не показувати .та ..)
  • -h Людські для читання розміри файлів

поки греп

  • -v Не показувати відповідні записи
  • Regular expressionfilter ^d- Починаються з букви d (для каталогу), тобтоdrwxrwxr-x <some file details> <foldername>

Якщо ви не хочете вводити кожен раз, ви можете зробити його псевдонімом для вашого профілю bash / shell.


2

Я побачив у вашому (@thinksinbinary) коментарі до відповіді @thomasrutter, що ви хочете мати можливість друкувати їх у зворотному порядку та у стовпцях. Ви, мабуть, уже зрозуміли це чи продовжили, але ось це:

ls -pr | grep -v / | column
  • -p додає просунуту косу рису ('/') до імен каталогу
  • -r змінює порядок виводу
  • -v дозволяє grep робити зворотний пошук, щоб надрукувати все, крім каталогів ( все, що не містить '/', що -p тут поміщено )
  • " стовпець ставить його в стовпці" - Капітан Очевидний

1
я думаю, це здорово, що на форумі ubuntu люди все ще коментують і читають ваші пости після довгого часу. Я хотів повернутися в Linux для того, щоб вивчити складання та операційні системи, оскільки зробити це на Windows набагато складніше. Спасибі!
думаєinbinary

0
ls -F | grep -v /

Вгорі команда відображає файли, але вона включає символьні посилання, труби тощо. Якщо ви також хочете їх усунути, ви можете скористатися одним із зазначених нижче прапорів.

ls -Fдодає символи до імен файлів. Ці символи показують корисну інформацію про файли.

ls -F | grep -Ev '/|@|*|=|>|\|'

Над командою відображаються лише файли.

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