Я хорошо знаю, как просто скопировать список файлов в другое место, используя bash, но проблема в том, что мой список файлов содержит имена файлов, которые содержат почти КАЖДЫЙ символ, который необходимо экранировать в bash. Существуют тонны пробелов,!, ",", "'",?, И почти любой другой персонаж, о котором вы могли подумать, должен быть экранирован.
Сначала я устал просматривать текстовый файл и избегать всех этих символов, но это ... утомительно, даже с поиском и заменой (хотя это работает) (я проверил его с гораздо меньшим списком файлов). Я также попытался добавить одинарные кавычки в текстовый файл до и после пути, но это не работает. Я также пытался добавить одинарные кавычки перед% после cp, но, очевидно, я понятия не имею, что я делаю. :) (Я знаю, что мне пришлось бы избегать одинарных кавычек в текстовом файле, если бы я как-то окружил путь к файлу одинарными кавычками.)
Я использую эту команду для копирования списка файлов в другое место, но опять же, она не работает со специальными символами.
cat file.txt | xargs -J % cp % ./folderToMoveto/
Я знаю, что есть другие команды, которые делают то же самое без необходимости передавать что-либо в xargs, и некоторые ответы здесь говорят, что xargs может делать это сам, но я не заставил их работать, в то время как вышеупомянутая работает.
Кроме того, я на OS X.