web-dev-qa-db-ja.com

cdコマンドを使用してスペースのあるディレクトリにアクセスする方法

Bcdスクリプトの「XML 5.1 Final Fields」など、「cd」を使用してスペースのあるディレクトリにアクセスする方法

私は試した cd XML 5.1 Final Fields

しかし、それはNo such file or directoryエラー。

これはスクリプトです:

#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
ls /home/george/Desktop/m5u/test/    
XML 5.1 Final Fields
~/Desktop/m5u/test$ ll
drwxr-xr-x  9 george george      4096 Feb 18 12:44 XML 5.1 Final Fields

これは、スクリプトを実行したときに表示されるエラーです

line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
2

変数xmlfolderが間違っています。そのはず

xmlfolder=XML\ 5.1\ Final\ Fields

または= "XML 5.1最終フィールド"

パスに/は必要ありません-それはただ一つのフォルダーです。 ""も使用している場合は、\も必要ありません。一つを選ぶ。


lsコマンドを使用して編集しているため、フォルダー名の末尾にスペースが含まれている可能性があります。 nautilusで名前を変更するか、mvコマンドを使用して、スペースを削除することをお勧めします。

スペースを保持したい場合、変数名は次のようになります。

xmlfolder=XML\ 5.1\ Final\ Fields\ 

または

xmlfolder="XML 5.1 Final Fields "

\文字で最初のオプションを使用する場合、""で変数を参照する必要があることに注意してください。つまり、"$xmlfolder"です。


このエラーは、cdがパスに不満であることを示唆しています。

これからcdコマンドを変更してみてください

cd $xmlpath

cd "$xmlpath"

正直に言うと、bashスクリプトでcdを使用する必要はありません。すべてを絶対パスで参照するだけです。


要約すると、xmlfolder=行はxmlfolder=XML\ 5.1\ Final\ Fieldsになり、cd行はcd "xmlpath"になります。

5
Tim