Сделайте находят выставочную наклонную черту после каталогов?

pwd подходящий для Ваших потребностей? Это дает полный путь текущего каталога. Или возможно то, что Вы хотите, является realpath ().

19
15.12.2010, 03:28
3 ответа

Портативно:

find . -type d -exec sh -c 'printf "%s/\n" "$0"' {} \; -or -print

Если Вы готовы перечислить каталоги и файлы отдельно (можно объединить вывод путем сортировки):

{ find . -type d -print | sed 's!$!/!'; find . \! -type d; } | sort

С GNU найдите, см. ответ Shawn J. Goff.

Если Вы готовы рискнуть непечатаемыми символами, искажаемыми, не производя к терминалу, см. ответ ddeimeke.

В zsh: print -rl -- **/*(DM) (D включать точечные файлы, M добавить a / после каталогов)

10
27.01.2020, 19:45
  • 1
    Первая команда не распечатала запаздывание наклонных черт для меня, но второй делает. –  Steven 16.12.2010, 19:45
find . \( -type d -printf "%p/\n" , -type f -print \)

Это использует команду printf для форматирования имен каталогов и стандартной печати для остальных.

15
27.01.2020, 19:45
  • 1
    я продолжаю поражаться гибкостью находки. –  Shawn J. Goff 15.12.2010, 06:12
  • 2
    это -printf характерно для GNU, находят. –  Gilles 'SO- stop being evil' 15.12.2010, 10:20
  • 3
    Хороший ответ. Мне нравится как findпозиционные параметры позволяют этому делать усовершенствованный вывод как это. Однако обратите внимание, что без пробелов вокруг запятой, это не будет работать. –  jimp 16.08.2017, 18:52
  • 4
    На основе этого ответа и Жабры, я придумал следующую упрощенную версию: find . -type d -printf '%p/\n' -or -print –  Teresa e Junior 11.11.2017, 06:38

Возможно,

find . -print0 | xargs -0 ls -Fd

опция также.

Из страницы справочника Соляриса:

- Каталоги F Marks с запаздывающей наклонной чертой (/), двери с больше запаздыванием - чем знак (>), исполняемые файлы с запаздывающей звездочкой (*), FIFOs с запаздывающей вертикальной панелью (|), символьные ссылки с запаздыванием "в" знаке, и семейство адресов AF_UNIX снабжают сокетом со знаком trailingequals (=). Следует за символьными ссылками, названными как операнды.

8
27.01.2020, 19:45
  • 1
    @Gilles: Спасибо за Потрясающий "d" ;-) –  ddeimeke 15.12.2010, 14:40
  • 2
    это увеличивает сумму syscalls –  Paweł Polewicz 11.11.2017, 22:19

Теги

Похожие вопросы