Как найти папку в ubuntu?
Получил легаси проект, в котором не особо следили за соглашениями об именовании и расположении папок.
Могу только предполагать как должны называться папки и файлы. Отсюда вопросы:
1) Как найти папку по имени?
Например, find workers -type d не особо помогает. Ищет только в текущем каталоге, а нужно по всей системе. 2) Как найти файл по части имени?
Т.е. часть имени должна быть _workers.rb , по ней нужно осуществить поиск Поиск по всей системе.
Отслеживать
задан 3 мая 2018 в 9:39
902 1 1 золотой знак 13 13 серебряных знаков 27 27 бронзовых знаков
find / -type d -iname ‘*часть имени*’ (звёздочки и кавычки не стирать)
3 мая 2018 в 9:44
ну как так? ru.wikipedia.org/wiki/Find
3 мая 2018 в 16:33
@diproart а теперь есть легальная отмазка: РКН меня забанил в вики!
3 мая 2018 в 19:41
@andreymal, неплохо бы добавить -xdev .
12 мая 2018 в 16:11
Если есть база данных, по состоянию на последнее её обновление можно запустить команду locate . Это во много раз быстрее, чем find .
Как узнать полный путь до текущей директории в Ubuntu?
Print Working Directory — так легче запомнится 😉 + man.
4 мая 2016 в 17:00
Кроме команды pwd можно использовать переменную окружения $PWD , которую определяют большинство интерпретаторов командной строки ( bash , dash , tcsh и даже busybox sh ) и изменяют её динамически при смене каталогов:
echo $PWD
Отслеживать
5,970 3 3 золотых знака 23 23 серебряных знака 44 44 бронзовых знака
ответ дан 3 мая 2016 в 20:46
6,894 2 2 золотых знака 27 27 серебряных знаков 57 57 бронзовых знаков
Команда pwd Linux
Команда pwd — это очень простая утилита, которая позволяет вывести в терминал путь к текущей папке. Каждая программа при запуске получает текущую папку в которой будут выполнятся все операции с её файлами если для них не указан другой путь. Все относительные пути тоже будут отсчитываться от этой папки.
При запуске терминала текущей папкой считается домашний каталог пользователя. Если программу запускать из определенной папки, то ее текущей папкой будет та папка, из которой ее запустили.
Команда pwd в Linux
Синтаксис команды очень простой:
$ pwd опции
Вот основные опции, которые вы можете использовать для настройки вывода утилиты:
- -L, —logical — брать директорию из переменной окружения, даже если она содержит символические ссылки;
- -P — отбрасывать все символические ссылки;
- —help — отобразить справку по утилите;
- —version — отобразить версию утилиты.
Дальше рассмотрим несколько примеров работы с командой. Для того чтобы просто посмотреть текущую папку Linux достаточно выполнить pwd без параметров:

Также у команды есть одна опция -P. Если по пути к текущей папке есть символические ссылки, то утилита покажет полный путь без учета символических ссылок:

В большинстве командных интерпретаторов pwd — это встроенная команда. Поэтому интерпретатору не нужно вызвать внешнюю утилиту и выполнение когда работает очень быстро.
Чтобы узнать текущую папку в скрипте не обязательно использовать эту команду. Достаточно обратится к переменной окружения PWD:

Но также можно записать результат выполнения команды pwd linux в переменную:
CWD=$(pwd)
echo $CWD

Выводы
Команда pwd Linux используется достаточно редко, намного чаще нам нужно менять текущую папку. Для этого применяется команда cd. Как видите, все очень просто.
Get current directory or folder name (without the full path)
How could I retrieve the current working directory/folder name in a bash script, or even better, just a terminal command. pwd gives the full path of the current working directory, e.g. /opt/local/bin but I only want bin .
40.5k 17 17 gold badges 114 114 silver badges 144 144 bronze badges
asked Sep 3, 2009 at 3:11
Derek Dahmer Derek Dahmer
15k 6 6 gold badges 36 36 silver badges 33 33 bronze badges
With full path, see: Getting the source directory of a Bash script from within.
Jul 19, 2017 at 18:38
24 Answers 24
No need for basename, and especially no need for a subshell running pwd (which adds an extra, and expensive, fork operation); the shell can do this internally using parameter expansion:
result=$ # to assign to a variable result=$ # to correct for the case where PWD=/ printf '%s\n' "$" # to print to stdout # . more robust than echo for unusual names # (consider a directory named -e or -n) printf '%q\n' "$" # to print to stdout, quoted for use as shell input # . useful to make hidden characters readable.
Note that if you’re applying this technique in other circumstances (not PWD , but some other variable holding a directory name), you might need to trim any trailing slashes. The below uses bash’s extglob support to work even with multiple trailing slashes:
dirname=/path/to/somewhere// shopt -s extglob # enable +(. ) glob syntax result=$ # trim however many trailing slashes exist result=$ # remove everything before the last / that still remains result=$ # correct for dirname=/ case printf '%s\n' "$result"
Alternatively, without extglob :
dirname="/path/to/somewhere//" result="$">" # extglob-free multi-trailing-/ trim result="$" # remove everything before the last / result=$ # correct for dirname=/ case