Copiando arquivos de diretórios com espaços em seu nome

3

Isso é o que eu tentei.

inputFile=$(zenity --file-selection --title "Test" --text "Please select the file for analysis." | sed -e "s/ /\\ /g")

Eu fiz a operação sed para substituir os espaços em branco com \ e um espaço em branco para que o comando de cópia funcione. Em seguida, na GUI de seleção de arquivos do Zenity, escolhi um arquivo para que o valor dentro de inputFile seja /home/username/Documents/Learning\ and\ Development/testfile.txt .

Agora, quando tento copiar este arquivo para o meu diretório de trabalho com

cp $inputFile .

Ainda retorna o erro,

cp: cannot stat ‘/home/user/Documents/Learning\’: No such file or directory
cp: cannot stat ‘and\’: No such file or directory
cp: cannot stat ‘Development/WhatsApp.apk’: No such file or directory

Existe alguma maneira de contornar isso? Na verdade estou escrevendo um programa. Por isso, não quero que os usuários renomeiem seus nomes de pastas para evitar espaços.

    
por Anonymous Platypus 15.07.2015 / 09:04

2 respostas

3

Com facilidade, você pode fazer o truque, coloque entre aspas duplas:

cp "$inputFile" /destination/

Incluir caracteres entre aspas duplas ('"') preserva o valor literal de todos os caracteres entre aspas, com a exceção de '$', '' ',' \ ', Leia mais: link

    
por Maythux 15.07.2015 / 09:10
0

você pode adicionar * onde o espaço apareceu e a cópia pode ser feita como

 cp  /home/user/users*tst.txt  /home/user/Downloads

onde você deseja copiar os usuários tst.txt para a pasta Downloads da pasta home

    
por Dark Prince 01.08.2017 / 08:26