Как я выбираю определенные файлы в другом каталоге с помощью удара?

В Ubuntu (Debian): sudo apt-get build-dep <package>

13
30.12.2011, 03:32
4 ответа

Используйте фигурные скобки для него:

ls /opt/somedir/{aa,bb,cc}

Для получения дополнительной информации читайте о расширении фигурной скобки.

22
27.01.2020, 19:52

Под ударом, выполненным shopt -s extglob (или вставленный в него Ваш ~/.bashrc), и можно использовать дополнительные шаблоны, которые предоставляют регулярным выражениям необычный синтаксис (наследованный от ksh). Можно использовать эти шаблоны в ksh также, конечно, и также в zsh после setopt ksh_glob.

$ shopt -s extglob
$ ls /opt/somedir/@(aa|bb|cc|doesnotexist)
/opt/somedir/aa   /opt/somedir/bb  /opt/somedir/cc

В zsh можно непосредственно использовать (foo|bar) как шаблон.

% ls /opt/somedir/(aa|bb|cc|doesnotexist)
/opt/somedir/aa   /opt/somedir/bb  /opt/somedir/cc

Обратите внимание, что команду называют с полным путем. Если Вы захотите назвать команду с коротким трактом, то необходимо будет изменить каталог так или иначе, и (cd /opt/somedir && somecommand aa bb cc) безусловно самый легкий путь.

3
27.01.2020, 19:52
  • 1
    Если Вы посмотрите тесно, то Вы будете видеть, что я указываю "без луга CD к каталогу сначала" в моем вопросе ;) –  neu242 30.12.2011, 12:10

Можно отфильтровать использование egrep:

ls | egrep '(aa|bb|cc)'

Найти все текстовые файлы:

ls | egrep '(aa|bb|cc).txt'
1
27.01.2020, 19:52
  • 1
    будет соответствовать каждому символу, и этот подход мешает далее воздействовать на эти файлы –  enzotib 29.12.2011, 14:22
  • 2
    я получил чувство, что ls был просто командой в качестве примера, также. –  Random832 29.12.2011, 16:23
  • 3
    Да, Вы правы, я указал, что хочу сделать, выполняют операцию: список файлов был просто примером. –  neu242 30.12.2011, 12:15
  • 4
    Хорошие комментарии дорогие друзья, спасибо. Удача neu242 :D –  Ocean 31.12.2011, 18:52

Во-первых, я направляю Вас к: никогда не анализируйте ls, никогда. Надлежащий, и канонический способ сделать, что Вы хотите, с находкой.

Например:

find /opt/somedir -regex '.*[aa|bb|cc].*' -exec mv '{}' ~/backup \;

Я обычно использую -name вместо -regex поскольку это более просто. Но regex соответствует Вашему варианту использования. Необходимо выполнить команду без -exec в первый раз для проверки они на самом деле - файлы, которые Вы хотите, переместился/удалил.

1
27.01.2020, 19:52
  • 1
    я никогда не говорил, что проанализирую ls и Rush, имел намного лучший ответ. Спасибо за попытку, хотя :) –  neu242 30.12.2011, 00:48

Теги

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