名前にスペースが含まれるディレクトリからファイルをコピーする

名前にスペースが含まれるディレクトリからファイルをコピーする

私が試してみたのはこれです。

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

コピー コマンドが機能するように、sed空白を と に置き換える操作を実行しました。次に、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

これを回避する方法はありますか? 実は、私はプログラムを書いています。 そのため、スペースを避けるためにフォルダー名を変更するようにユーザーに指示したくありません。

答え1

二重引用符で囲むと簡単にこのトリックを実行できます。

cp "$inputFile" /destination/

文字を二重引用符 ('"') で囲むと、'$'、'`'、'\' を除く引用符内のすべての文字のリテラル値が保持されます。続きを読む:http://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html

答え2

スペースが出現した場所に*を追加して、次のようにコピーすることができます。

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

ユーザーのtst.txtをホームフォルダからダウンロードフォルダにコピーする場所

関連情報