Я использую команду find для поиска в больших и вложенных структурах каталогов.
В результат-вывод иногда включается двойная косая черта (//).
Пример (после «Загрузки»):
#> find ~/Downloads/ -iregex ".*some.*"
/Users/michael/Downloads//subDirectory/some_file.pdf
Сначала я подумал, что это отметит текущий рабочий каталог. Но это не так.
В чем смысл этой двойной косой черты?
Обычно я копирую результат в буфер обмена, меняю на искатель. Затем «shift» + «команда» + «g» и вставьте путь (до файла) в поле. Так что содержащий каталог открывается.
Работает отлично. Но двойную косую черту я должен удалить вручную.
Поэтому: как я могу избежать этого?
Ответы:
find
довольно буквально. Когда вы указываете ему искать в «~ / Downloads /», он использует его (включая завершающий слеш) в качестве префикса для всего, что он находит. Поскольку в конце пути, который вы ему указали, возникает ненужный и нерелевантный слеш, в результате вы получите ненужный и неуместный дополнительный слеш на выходе.Решение: удалите завершающий символ "/" из каталога поиска:
источник
Значит вы используете странную старую BSD find.
Вы действительно можете опустить косую черту в своей исходной команде, но так как она добавляется автоматически через завершение табуляции (которую вы, безусловно, должны использовать как можно больше), и так как косая черта фактически используется в бесчисленных местах в других местах, чтобы быть уверенным, что вы Вы имеете дело с каталогом, а не с именем файла, опускать его нелогично и глупо.
Вместо этого я предлагаю сделать одну из следующих вещей:
а) Сделайте обёртку, чтобы найти, что трубы для седа: | sed 's @ // @ / @'
б) Установите GNU findutils с помощью «brew install findutils», а затем либо напрямую используйте «gfind», псевдоним «find» для «gfind», либо добавьте / usr / local / opt / findutils / libexec / gnubin к вашему пути (который также добавляет GNU findutils '' locate ',' updatedb 'и & xargs').
c) Переключитесь на правильную ОС GNU / Linux, у которой не было бы этой проблемы (и тысячи других) в первую очередь. :п
источник
set mark-directories off
в свой.inputrc
и ты в порядке. От одного из тех старых парней из BSD.