コマンドライン経由で FTP を操作しているのですが、2 つの問題が発生します。次のようなフォルダーの名前を変更したり、フォルダーに入力したりできません。
dir /home/folder1/Human (2012)
私は試した:
cd ~/folder1/Human\ (2012)
ここで、 というメッセージを受け取りますthe folder does not exist
。
mv ~/folder1/Human\ (2012)
この場合、次のようなメッセージが表示されます。
syntaxfailure at (
この問題をどうすれば解決できますか?
答え1
パスを二重引用符で囲むこともできます:
cd ~/"folder1/Human (2012)"
または、 (
、 (スペース)のエスケープ シーケンスを指定する必要があります(これらは特殊文字であるため)。)
cd ~/folder1/Human\ \(2012\)
そして
mv ~/"folder1/Human (2012)"
エスケープシーケンスあり:
mv ~/folder1/Human\ \(2012\)
答え2
スペースの前のについては正しい考えです\
。これは、括弧を含むすべての特殊文字に適用されます。開き括弧の前にバックスラッシュを 1 つ置き、閉じ括弧の前にもう 1 つバックスラッシュを置くと、機能します。
このような場合には、タブ補完が役立ちます。ファイル名を入力し始めてから を押すと、Tabファイル名の残りの部分が自動的に補完され、必要に応じてバックスラッシュが挿入されます。(ファイル名をまだ十分に入力していないため、どのファイルを指しているのかが明確でない場合でも、bash は可能な限りファイル名を自動補完します。タブを 2 回押すと、ファイル名の補完候補の一覧が表示されます。)
答え3
これを行う方法は、"
ファイルまたはディレクトリを指定するときにマークを使用することだという snoop の意見に同意します。
ただし、名前を変更する必要があるディレクトリが多数ある場合は、 を使用して、よりわかりやすい名前に変更できます。Rename は、ファイルとディレクトリの名前を変更する点を除いてrename
、 と似ていますが、は通常、ファイルの内容を編集するために使用されます。次に例を示します。sed
rename
sed
rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*
したがって、次のディレクトリが にあるとします~/folder1
。
Human (2012)
Human (2011)
Human (2010)
代わりに次のように名前が変更されます:
Human2012
Human2011
Human2010
詳細については、次のコマンドを実行してください。
man rename