スペースと句読点を含むファイルの名前を変更する

スペースと句読点を含むファイルの名前を変更する

誰かが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これを防ぐために使用してください。

おすすめ記事