Копирование файлов из каталогов, имеющих пробелы на его имя

Это - то, что я попробовал.

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

Я сделал sed операция для замены пробелов a \ и пробел, чтобы заставить копирование управлять для работы. Затем от выбора файла Zenity GUI я выбрал файл так, чтобы значение внутри inputFile /home/username/Documents/Learning\ and\ Development/testfile.txt.

Теперь, когда я пытаюсь скопировать этот файл в свой рабочий каталог с

cp $inputFile .

Тем не менее это возвращает ошибку,

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

Там какой-либо путь состоит в том, чтобы обойти это? На самом деле я пишу программу. Таким образом, я не хочу говорить пользователям переименовывать свои имена папок для предотвращения пробелов.

5
задан 21 December 2015 в 04:53

2 ответа

Легко можно добиться цели, включить двойными кавычками:

cp "$inputFile" /destination/

символы Включения в двойных кавычках (†˜ "’) сохраняет литеральное значение всех символов в кавычках, за исключением ‘ $’, †'’, †˜\’, Читать дальше http://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html

6
ответ дан 23 November 2019 в 09:13

можно добавить *, где пространство появилось, и копия может быть сделана как

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

, где Вы хотите скопировать пользователей tst.txt в папку Downloads от домашней папки

0
ответ дан 23 November 2019 в 09:13

Другие вопросы по тегам:

Похожие вопросы: