Сортировка файла командной строки, копирование

Скопированный с моего терминала...

dan@Silver:/media/dan/RAID/MUSIC$ grep -r '.mp3' ./ > cp *.mp3 /home/dan/Music/
grep: input file ‘./cp’ is also the output

У меня есть музыкальная коллекция на томе NTFS, который я хочу отсортировать и передать новой установке Ubuntu. Команды выше были предназначены для поиска, 6 или 7 каталогов глубоко ("CP-r" не будет), и скопируйте ТОЛЬКО те файлы, которые закончились в .mp3.

Я понятия не имею, о чем говорит grep. Какая-либо справка, доступная новичку?

0
задан 22 November 2014 в 18:03

3 ответа

Правильный инструмент командной строки для этого задания find, например,

find -iname '*.mp3' -type f -execdir cp -t /home/dan/Music/ -- {} +

Эти -iname, тест будет соответствовать нечувствительно к регистру т.е. .MP3, а также .mp3 - я не уверен, важно ли это в файловых системах NTFS. Вы могли использовать -name вместо этого.

1
ответ дан 6 October 2019 в 19:46

Находят пользовательский пакет функции удара:

https://загрузка github.com/Kiran-Bose/supreme

и установка deb файл для debian основывал системы.

обзор

(1) Функциональности Открытые приложения----Firefox----Калькулятор----Настройки

(2) Управляют Файлами----Поиск----Перейти----Быстрый доступ

            |----Select File(s)
            |----Inverse Selection
            |----Make directory
            |----Make file
                                          |----Open
                                          |----Copy
                                          |----Move
                                          |----Delete
                                          |----Rename
                                          |----Send to Device
                                          |----Properties

(3) Управляет Телефоном----Перемещайтесь/Копируйте с телефона----Перемещайтесь/Копируйте в телефон----Папки Sync

(4) Управляют USB----Перемещайтесь/Копируйте от USB----Перемещайтесь/Копируйте в USB

0
ответ дан 6 October 2019 в 09:46

Я не уверен, что Вы имеете в виду о сортировке, если Вы не хотите изменить расположение каталога, но вот то, почему это не работает...

Часть проблемы - то, что при помощи'>' Вы перенаправляете вывод команды grep в файл, названный 'CP' вместо того, чтобы использовать канал '|' для команды 'CP'.

Однако большая проблема состоит в том, что Ваша команда grep, вероятно, никогда не возвращается (или возможно ничего не возвращает), поскольку Вы используете grep -r '.mp3' ./ вместо grep '.mp3' -r ./ кроме того, я предполагаю, что grep, вероятно, ищет .mp3 в содержание из файлов, а не эти имена файлов .

попытка:

cd /media/dan/RAID/MUSIC
find . -name '*.mp3'

, если это перечисляет все файлы, Вы хотите скопировать, попробовать:

find . -name '*.mp3' -exec cp --parents "{}" /home/dan/Music \;

--exec выполнения команда для каждого файла, подобранного находкой, --parents консервы полный путь файла (иначе все файлы были бы скопированы в/home/dan/Music вместо/home/dan/Music/subdir1 и т.д.), {} относится к в настоящее время подбираемому файлу. Я поместил кавычки вокруг этого, потому что звуковые файлы часто имеют пробелы в них. эти \; то, как Вы завершаете команду для --exec

Hope, которой это помогает. Даже если это не делает я настоятельно рекомендую, чтобы Вы изучили страницу справочника для находки и возможно xargs, которые являются мощной комбинацией, где можно передать вывод находки по каналу к xargs

0
ответ дан 6 October 2019 в 19:46

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

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