Скопированный с моего терминала...
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. Какая-либо справка, доступная новичку?
Правильный инструмент командной строки для этого задания find
, например,
find -iname '*.mp3' -type f -execdir cp -t /home/dan/Music/ -- {} +
Эти -iname
, тест будет соответствовать нечувствительно к регистру т.е. .MP3
, а также .mp3
- я не уверен, важно ли это в файловых системах NTFS. Вы могли использовать -name
вместо этого.
Находят пользовательский пакет функции удара:
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
Я не уверен, что Вы имеете в виду о сортировке, если Вы не хотите изменить расположение каталога, но вот то, почему это не работает...
Часть проблемы - то, что при помощи'>' Вы перенаправляете вывод команды 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