Проблема: 245,000 плюс файлы, находящиеся в нескольких recup_dir папках (вывод от выполненного photo_rec) бывший должный быть перемещенным в централизованную папку для дальнейших операций восстановления. Все файлы являются *.jpg файлами.
У меня есть текстовый файл под названием newlist1.txt, который я отформатировал следующими 4 способами. И измениться на каждое разнообразие, польза находит/заменяет, что редактор важен. эти файлы сценария находятся в папке/disks/Keep/new-s1-recov. Я знаю, я, возможно, использовал просто. указать, где к mv файлы, но первоначально, сценарии были в другой папке, и период, не будет достаточно.
echo !(recov1/recup_dir.1033/f340010.jpg)| xargs mv -t /disks/Keep/new-s1-recov
echo !recov1/recup_dir.1034/f3442050jpg| xargs mv -t /disks/Keep/new-s1-recov
echo recov1/recup_dir.1034/f344208.jpg| xargs mv -t /disks/Keep/new-s1-recov
ls recov1/recup_dir.1034/f344208.jpg| xargs mv -t /disks/Keep/new-s1-recov
последние два примера, 3 и 4, работают правильно при выполнении из командной строки. Ни один из примеров не работает, когда я ввожу
sh newlist1.txt
или
bash newlist1.txt
Вещь, у меня есть более чем 245 000 файлов, которые должны быть перемещены. Почему я не использую файловый менеджер и делаю группы нескольких сотен за один раз? Поскольку файловый менеджер является возможно худшей частью программного обеспечения в Ubuntu 16.04.3. Так, командная строка является предпочтительным способом выполнить эту задачу. Если я проведу несколько дней, выясняя, как сделать его как это, я буду считать это временем хорошо потраченный. Я потратил впустую больше, чем это на файловом менеджере, ожидающем экрана, чтобы выйти из его кажущегося изумления и наконец показать, что перемещение нескольких файлов было наконец выполнено.
Форматирование выше было взято от других примеров, которые я нашел неоднократно. Я пытался адаптировать свою проблему к чужому решению.
Так, вопрос: Как я форматирую эти 245 000 строк (использующий нано текстовый редактор, который имеет нахождение/заменение, не имея необходимость добавлять некоторое дополнительное программное обеспечение к gedit), и получите его в файл, который может быть вызван любой командой так, чтобы Ubuntu не дала мне "СЛИШКОМ МНОГО АРГУМЕНТОВ" и умерла. Это отправит каждую строку как команду, и когда это будет сделано, это выполнит следующую строку и так далее, пока это не закончено.
Так как 245 000 имен файлов, вероятно, не будут соответствовать на командной строке, использовать find
и xargs
(man find;man xargs
), и сделайте что-то как:
find recov1/ -type f -iname '*.jpg' -print0 | \
xargs -0 --no-run-if-empty mv -t /disks/Keep/new-s1-recov
Я всегда использую find ... -print0
и xargs -0
в случае, если имена файлов содержат пробелы. Вам, вероятно, придется использовать xarg
переключатели --max-args=
или --max-chars=
если xargs
сбои. Вы могли также заменить mv
с echo mv
для тестирования.