Если Вы дадите find
полный путь то для начала, он распечатает полные пути. Например, для нахождения всех .htaccess файлов в текущем каталоге:
find "$(pwd)" -name .htaccess
или если Ваша оболочка расширяется $PWD
до текущего каталога:
find "$PWD" -name .htaccess
find
просто предварительно ожидает путь, который это было дано относительному пути в файл от того пути.
Greg Hewgill также предложил использовать pwd -P
, если Вы хотите разрешить символьные ссылки в своем текущем каталоге.
Можно использовать
find $PWD
в ударе
Это работало на меня. Но это не перечисляло в алфавитном порядке.
find "$(pwd)" -maxdepth 1
Это списки команд в алфавитном порядке, а также скрытые файлы списков также.
ls -d -1 "$PWD/".*; ls -d -1 "$PWD/"*;
stat
Полный путь единственного файла:
stat -c %n "$PWD"/foo/bar
fd
Используя fd
(альтернатива find
), используйте следующий синтаксис:
fd . foo -a
то, Где .
шаблон поиска и foo
, является корневым каталогом.
, Например, перечислять все файлы в etc
рекурсивно, работайте: fd . /etc -a
.
-a
,--absolute-path
Шоу, абсолютное вместо относительных путей
ls -d "$PWD/"*
Это выполняется только в текущем каталоге . Он цитирует "$ PWD", если он содержит пробелы.
Лучшая книга, которую я когда-либо читал об ОО, это Bertrand Meyer Object Oriented Software Construction .
Она огромна, но очень полезна для меня. Он охватывает все аспекты проектирования OO IMVHO.
-121--2672353-Я полностью понимаю вашу ситуацию. Также владеет тремя из этих книг;) Я бы предложил первое издание Head. Объектно-ориентированный анализ и проектирование. Это выведет вас на нужные треки. Книга GoF велика, но бесполезна, пока вы не получите основы через голову, и книга Head First не позаботится об этом. Ура:)
-121--2672355-Если вы дадите команде find абсолютный путь, он выплеснет результаты с абсолютным путем. Итак, из каталога Кена, если вы должны были ввести:
find /home/ken/foo/ -name bar -print
(вместо относительного пути найти. -name bar -print
)
Вы должны получить:
/home/ken/foo/bar
Поэтому, если вы хотите, чтобы ls -l
и чтобы он вернул абсолютный путь, вы можете просто сказать команде find выполнить ls -l
все, что он найдет.
find /home/ken/foo -name bar -exec ls -l {} ;\
ПРИМЕЧАНИЕ: Существует космос между {}
и ;
Вы получите что-то подобное:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Если вы не уверены, где находится файл, вы всегда можете изменить расположение поиска. Если путь поиска начинается с «/», вы получите абсолютный путь взамен. Если вы ищете расположение (например ,/), где вы собираетесь получить большое количество отклоненных ошибок разрешения, то я бы рекомендовал перенаправить стандартную ошибку, чтобы вы могли увидеть результаты поиска:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2 >
- синтаксис для оболочек Borne и Bash, но не будет работать с оболочкой C. Это может работать и в других снарядах, но я знаю только наверняка, что это работает в Борне и Баше).
Используйте это для каталогов (/
после **
необходимо в bash, чтобы ограничить его каталогами):
ls -d -1 "$PWD/"**/
это для файлов и каталоги непосредственно в текущем каталоге, имена которых содержат .
:
ls -d -1 "$PWD/"*.*
это для всего:
ls -d -1 "$PWD/"**/*
Взято отсюда http://www.zsh.org/mla/users/2002/msg00033.html
В bash **
является рекурсивным, если вы включите shopt -s globstar
].