誰かがGlobal Linux 3.0.31-0.9サーバーに複数のスペース、角括弧、疑問符、およびコロンを含むファイル名を持つファイルを配置しました。
何もしないので名前の変更や削除はできません!
添付ファイル名とコマンドの例では、「横説説」を含むファイルを削除/名前変更しようとします。ここ。
私のls
結果:
-rw-r--r-- 1 root root 11306 May 2 03:25 who suggesting to assign this issue to the group which is responsible for the application StreamServe. (Probably it is operated by Linq????:q
-rw------- 1 root root 15797 Jun 12 12:59 .viminfo
-rw------- 1 root root 1200 Jun 12 13:00 .lesshst
drwxrwxrwx 32 root root 4096 Jun 13 00:00 .snapshot
-rw------- 1 root root 32976 Jun 13 14:05 .bash_history
ベストアンサー1
入力しにくい名前のファイルを扱う簡単な方法は、完成機能を使用することです。この場合、名前の最初の数文字は入力しやすいので、入力してからを押しますTab。
$ mv誰がTab見つかりましたか。txt
最初の文字を決定できない場合は、を押して現在のディレクトリのすべてのファイル名をTab循環させることができます。./
シェルの完了コマンドは、プログラムされた方法'
を使用して引用符付き\
文字列を生成します。
または、この引用文字列を直接作成することもできます。一重引用符内では、一重引用符自体を除くすべての文字が正常に解釈されます。したがって、ファイル名に一重引用符が含まれていない場合は、一重引用符の間に貼り付けてください。ただし、ls --show-control-chars
印刷できない文字に置き換えるのではなく、実際のファイル名(印刷されたとおり)が必要です。ファイル名に一重引用符がある場合'\''
(一重引用符、バックスラッシュ、一重引用符、一重引用符)に置き換えます。たとえば、という名前のファイルにit's
使用できます'it'\''s'
。
または、そのファイルにのみ一致するワイルドカードパターンを作成できます。たとえば、この場合:
$ ls -d w*
who suggesting to assign this issue to the group which is responsible for the application StreamServe. (Probably it is operated by Linq????:q
wibble
私の例では、一致するファイルが2つあるため、ワイルドカードでは不十分です。文字を追加するだけです。
$ ls -d wh*
who suggesting to assign this issue to the group which is responsible for the application StreamServe. (Probably it is operated by Linq????:q
mv who* found.txt
最初の文字を印刷できない場合は、名前の他の部分と一致する別のパターンを選択できます。[!#-z]*
あるいは、同じ[!0-9A-Z_a-z]*
パターンを使用して[![:alnum:]]*
ファイル名の先頭にある一般文字を除外することもできます。
ファイル名が-
(ASCIIダッシュまたはハイフン)で始まる場合は、オプションとして解釈できます。./-wibble
これを防ぐために使用してください。