web-dev-qa-db-ja.com

ファイル名として\ rを使用してファイルを削除または名前変更します

名前が1文字のように見える厄介な小さなファイルがあり、その文字は\rです。

どうすればこれを削除できますか?

これは私がls -blで得たものです:

-rw-rwxr--+   1 root             snapplewriters        0 Aug 29  2011 \r

ls -l「?」と表示するだけ

10
Colin

我ら ls -liファイルのiノード番号(最初の列)を取得し、findを使用してファイルを削除します(iノードが12345であると想定)。

find . -inum 12345 -exec rm -i {} \;

16
Garrett
14
glenn jackman

私は個人的にPythonに手を伸ばします:

>>> import os
>>> '\r' in os.listdir('.')
True
>>> os.unlink('\r')

ただし、エスケープ文字を理解している場合は、シェルからこれを行うこともできます。

$ ls -b $'\r'
\r
$ rm -vi $'\r'
rm: remove regular empty file ‘\r’? y
removed ‘\r’
5
Josh Lee

Bashシェルを使用している場合に<carriage return>というファイルを削除するもう1つの簡単な方法は次のとおりです。

$ rm <control-v><control-m>
3
S2VpdGgA

1文字のファイル名は珍しいものであり、ディレクトリにそのようなファイルが他にない場合は、次のことを試すことができます。

rm ?

奇妙な文字を引用する方法を学んだり調べたりするのが面倒なので、難しい名前のファイルで立ち往生しているときに、これの変形を何度も使用しました。