Anaconda? https://www.continuum.io/downloads
Существует также меньшая версия Miniconda, с меньшим количеством пакетов.
Как отметил Джефф Шаллер , *
обычно работает как ls
- {{ 1}} он не будет показывать вещи, имена которых начинаются с .
(точка).
Если вы используете bash,
и хотите получить вещи, имена которых начинаются с .
,
s et (включить) sh ell opt ion dotglob
с помощью команды
shopt -s dotglob
Это заставит *
работать как ls -A
- он все равно не будет отображаться .
и ..
сами по себе, но покажет все остальное, начиная с .
.
В вашем вопросе упоминается «все в каталоге».
Это несколько двусмысленная фраза.
Если вы имеете в виду все, что находится в каталоге (верхнего уровня) / Applications
,
, тогда другие ответы подходят.
Но если вам нужно все в дереве / Приложения
(т. Е., все в каталоге / Applications
и его подкаталогах ),
и вы используете bash, установите параметр оболочки globstar
с помощью команды
shopt -s globstar
Это приведет к тому, что **
как компонент имени файла будет означать
все здесь и ниже. Итак,
для файла в / Applications / **
do
echo "$ file"
done
отобразит все объекты (файлы, каталоги и т. д.)
в дереве / Applications
.
Обратите внимание, что это нельзя комбинировать с другими символами
на том же уровне компонента; то есть вы не можете делать такие вещи, как foo ** bar
.
Однако вы добавляете другие компоненты после **
.
Например,
для файла в / Applications / ** / README
будет перебирать все файлы с именем README
в / Applications
,
и
для файла в /Applications/**/*.txt
найдут все файлы, имена которых заканчиваются на .txt
.
Вы можете установить несколько параметров одновременно; например, с помощью
shopt -s dotglob globstar
Полный список опций см. в документации по bash.
Вы можете установить параметры u nset с помощью shopt -u
.
"$ file"
), если у вас нет веской причины не делать этого,
и вы уверены вы знаете, что делаете. Этот формат позволяет вам выбирать из всех вариантов перечисления и сортировки ls:
ls -at $DIR | while read i; do echo $i; done
Оператор *
называется оператором подстановки (расширения имени) оболочки (?
и []
тоже) , когда вы вызываете его без кавычек, он расширяется до всех файлов в текущем каталоге (без префикса каталога). Если вы используете префикс, например / foo / *
, он будет расширен до всех файлов в каталоге / foo
.
Обратите внимание, что он также используется для сопоставления определенных файлов, например, для сопоставления только файлов, которые начинаются с foo
и заканчиваются на bar
в текущем каталоге, используйте glob pattern:
foo*bar
Итак, цикл for
теперь может принимать форму:
for f in foo*bar; do echo "$f"; done
Прочтите страницу man
вашей оболочки, чтобы получить больше информации о подстановке оболочки.
Для перебора файлов (и подкаталогов) в каталоге можно использовать
for file in /Applications/*
do
echo "$file"
done
Обратите внимание, что если не найдено ни одного совпадения, переменная file
будет содержать строку /Applications/*
буквально (со звездочкой), и это может вызвать ошибки, если следующие команды ожидают существующий путь. Если вы хотите ничего не делать, если ни один файл не найден, вы можете использовать опцию nullglob
:
shopt -s nullglob
for file in /Applications/*
do
echo "$file"
done