Работа с рабочим каталогом для команды поиска

facepalm Кажется, у меня ошибка в файле запуска :stty werase 2> /dev/null

0
20.10.2021, 05:17
1 ответ

Если вы используете утилиту dirname, она правильно вернет .для аргумента пути без пути к каталогу в нем:

for pathname do
    name=$( basename "$pathname" )
    find "$( dirname "$pathname" ) -name "${name%.*}.org" -type f
done

Если вы знаете, что имеете дело с именами файлов, оканчивающимися на .pdf, вы можете использовать

for pathname do
    find "$( dirname "$pathname" ) -name "$( basename "$pathname".pdf ).org" -type f
done

Если у вас есть оболочка zsh, вы можете использовать

for pathname
    find $pathname:h -name $pathname:t:r.org -type f
done

:hвозвращает «голову» имени пути, то есть компоненты пути к каталогу, а :tвозвращает «хвост», то есть компонент имени файла. Вы получаете расширение -меньше «корня» имени файла с :r.

Если вас интересует только поиск в том же каталоге, что и исходный файл, вам также необходимо ограничить рекурсию, которую делает find. Вы можете сделать это с помощью -maxdepth 1в большинстве современных реализаций find.

0
20.10.2021, 06:19

Теги

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