Как искать содержание в каталоге от терминала, в то время как Вы посреди записи команды?

Я пытаюсь стать довольным терминалом при помощи его так, как я могу. Аспект моего использования компьютера, где я теряю большую часть времени с помощью командной строки вместо gui, - когда я пытаюсь найти песню, я интересуюсь.

Моя музыкальная папка структурирована как так Музыка-> Полосы-> Альбомы-> Песни

Я часто забываю, в каком Альбоме Песня находится, но я всегда помню то, что Band играл ту песню.

Я не ищу песню из каталога Music, потому что занимает слишком много времени находить песню (у меня есть большая музыка), таким образом, я ищу песню после того, как я добираюсь до каталога Band. Прямо сейчас в командной строке я имею

# totem /home/user/Music/Red\ Hot\ Chili\ Peppers/

но я забыл, какой Альбом Песня "Dani Калифорния" находится в (тотем является аудиоплеером в гноме.) Самый быстрый путь ко мне для обхождения этого состоит в том, чтобы проникнуть внутрь папки Red Hot Chili Peppers в файловом менеджере gui и поразить ctrl+f и тип "Dani Калифорния".

Существует ли способ, которым я могу искать содержание в каталоге от терминала, в то время как я посреди записи команды? Или у Вас есть какие-либо рекомендации о том, как я могу наиболее быстро достигнуть той же цели, которую я делаю в gui из командной строки?

2
задан 5 September 2011 в 06:17

5 ответов

Это не особенно интуитивно, поскольку автозавершение не работает, но Вы могли достигнуть того, что Вы хотите использовать маски файла:

totem /home/user/Music/Red\ Hot\ Chili\ Peppers/*/Dani\ Ca*

Другая опция является использованием, находят и затем заставляют его передать имена файлов, которые это нашло к тотему:

find . -name "Dani Calif*" -exec totem '{}' +

Хотя это не точно "поиск, в то время как Вы пишете команду"

2
ответ дан 2 December 2019 в 04:28

Удар "вкладки" дважды должен дать Вам список файлов или каталогов. Затем просто введите часть той, которая Вы хотите и поражаете "вкладку" для завершения ее.

0
ответ дан 2 December 2019 в 04:28

Действительно интересный вопрос. Это - крутой способ вынудить себя использовать CLI. Но человек, который звучит слишком болезненным для музыки. Я не вижу, как я мог жить с пределами Тотема (по сравнению с Banshee или Rhythmbox). Я думал бы, запрещая себе использовать Наутилус, и gedit зайдет достаточно далеко, чтобы вынудить Вас использовать терминал чаще.

Но я восхищаюсь Вашим терпением и дисциплиной. Возможно, Вы могли бы хотеть изучить ориентированный аудиоплеер CLI/терминала. Вот хороший обзор некоторых: http://www.linux.com/archive/feature/124907

Извинения заранее, если ни один из них не решает конкретную проблему, которую Вы спрашиваете о, но, учитывая фон Вашего вопроса, я думаю, что Вы могли бы найти эти опции интересными, тем не менее. Всего наилучшего.

0
ответ дан 2 December 2019 в 04:28

Уже предложенное решение метасимвола является большим, но иногда это не могло быть достаточно.

Я часто использую больше, чем терминал за один раз, мультиплексируя единственное использование окна screen, но вкладки терминала гнома могли сделать задание также (я должен указать что screen решение будет работать также в a ssh сессия или в виртуальном терминале, таким образом, это является более общим).

Так, переключаясь на другой терминал, можно использовать locate управляйте, чьи результаты получены намного более быстро, чем из find.

0
ответ дан 2 December 2019 в 04:28

Это может также быть сделано через Bash программируемое завершение. Я соединил сценарий небольшой выборки.

Сценарий ниже завершает a fap (найдите и играйте), команда, которую необходимо определить отдельно, например

fap

#! /bin/sh
file="$2"
totem "$file" > /dev/null &
exit 0

Затем поместите следующий сценарий в /etc/bash_completion.d каталог

/etc/bash_completion.d/fap

_fap()
{
    local cur prev dir i saveIFS

    COMPREPLY=()
    _get_comp_words_by_ref cur prev

    saveIFS=$IFS
    IFS=$'\n'    
    dir="$cur"
    if [ -z "$cur" ]; then
        dir="/home/user/music"
    elif ! [ -d "$cur" ]; then
        dir="`dirname "$cur"`"
    fi

    local files=$(find `dequote "$dir"` -type f -iname "*${prev}*" -printf "%p\n")
    COMPREPLY=( $( compgen -W "${files}" -- $cur ) )

    for ((i=0; i < ${#COMPREPLY[@]}; i++)); do
        _quote_readline_by_ref ${COMPREPLY[i]} COMPREPLY[i]
    done

    IFS=$saveIFS

    return 0
} &&
complete -F _fap -o nospace fap

Изменитесь dir="/home/user/music" выровняйте соответственно (запустите папку для своей музыкальной коллекции). Следующий источник сценарий

. /etc/bash_completion.d/fap

Теперь можно использовать заполнение клавишей Tab как это

fap frozen [TAB]
fap frozen /home/user/music/MADONNA\ -\ RAY\ OF\ LIGHT/TRACKS/09\ -\ Madonna\ -\ Frozen.mp3

или, если существует больше опций

$ fap girl [TAB]
$ fap girl /home/user/music/MADONNA\ -\ RAY\ OF\ LIGHT/TRACKS/[TAB][TAB]
/home/user/music/MADONNA\ -\ RAY\ OF\ LIGHT/TRACKS/04\ -\ Madonna\ -\ Candy\ Perfume\ Girl.mp3
/home/user/music/MADONNA\ -\ RAY\ OF\ LIGHT/TRACKS/13\ -\ Madonna\ -\ Mer\ Girl.mp3
$ fap girl /home/user/music/MADONNA\ -\ RAY\ OF\ LIGHT/TRACKS/0[TAB]
$ fap girl /home/user/music/MADONNA\ -\ RAY\ OF\ LIGHT/TRACKS/04\ -\ Madonna\ -\ Candy\ Perfume\ Girl.mp3
0
ответ дан 2 December 2019 в 04:28

Другие вопросы по тегам:

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