Estou bem ciente de como simplesmente copiar uma lista de arquivos para outro local usando o bash, mas o problema é que minha lista de arquivos contém nomes de arquivos que contêm praticamente todos os caracteres que precisam ser escapados no bash. Existem toneladas de espaços,!, ",", "'",?, E praticamente todos os outros personagens que você poderia imaginar que precisam ser escapados.
Inicialmente cansei de percorrer o arquivo de texto e escapar de todos esses caracteres, mas é ... exaustivo, mesmo com pesquisa e substituição (no entanto, isso funciona) (testei com uma lista muito menor de arquivos). tentei adicionar aspas simples no arquivo de texto antes e depois do caminho, mas isso não funciona. Eu também tentei adicionar aspas simples antes e depois do% depois do cp, mas obviamente não tenho ideia do que estou fazendo. :) (Eu sei que teria que escapar aspas simples no arquivo de texto se eu fosse de alguma forma cercar o caminho do arquivo com aspas simples.)
Estou usando este comando para copiar a lista de arquivos em outro local, mas, novamente, não funciona com caracteres especiais.
cat file.txt | xargs -J % cp % ./folderToMoveto/
Eu sei que existem outros comandos que fazem a mesma coisa sem ter que canalizar nada para o xargs, e algumas respostas aqui dizem que o xargs pode fazer isso sozinho, mas eu não consegui fazer isso funcionar, enquanto o acima faz trabalho.
Além disso, estou no OS X.