Используя Конвейер к Файлам прямого доступа для Программирования, который Открывает Them

Можно использовать rm удалить папку на Вашем внешнем жестком диске.

Полная команда Terminal похожа на это

rm -r /Volumes/$drivename/$folder

Замена $drivename с названием Вашего внешнего жесткого диска.
Замена $folder с названием Вашей папки.

Если Вы не знаете название своего внешнего жесткого диска, можно искать его с

ls /Volumes
0
11.11.2013, 04:53
2 ответа

Можно использовать xargs для этого. Это возьмет то, что передается по каналу в на stdin, и используйте его в качестве аргументов подкоманде. Таким образом в Вашем случае это могло бы быть похожим на это:

ls Music | grep <keyword> | xargs vlc &

Теперь, эта последовательность команды будет, вероятно, все еще иметь некоторые проблемы, особенно пробел. По умолчанию, xargs разделит его вход на любом пробеле, поэтому если Вам назвали файл как Artist Name - Track Name.mp3, затем xargs отправит 5 отдельных аргументов vlc: Artist, Name, -, Track, Name.mp3. К счастью существует путь вокруг этого. Если Вы используете -0 опция к xargs, это будет использовать пустой указатель \0 разделять его вход на аргументы команде sub. И как оказалось, find поддержки команды, выписывающие имя файла, соответствуют пустому разделителю (и find лучший инструмент для нахождения файлов, чем ls | grep так или иначе).

Таким образом, это может быть лучшим конвейером:

find Music -iname '*<keyword>*' -print0 | xargs -0 vlc &
10
28.01.2020, 02:13

В то время как склонность, как использовать xargs, очень полезна, в данном случае было бы лучше просто использовать шарик.

vlc Music/*keyword* &  ## will find all filenames containing the string 'keyword'

Если Вы хотите рекурсивность (который является: взгляд в подкаталогах), затем Вы могли использовать опцию оболочки globstar:

shopt -s globstar
vlc Music/**/*keyword* &
3
28.01.2020, 02:13
  • 1
    , Это - лучший способ выполнить эту задачу.Спасибо! большое спасибо –  Newb 11.11.2013, 16:52

Теги

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