その他の方法には次のようなものがあります:
特殊文字のエスケープ:
[~]$rm \"la\*
find コマンドを使用して、現在のディレクトリのみを検索します。 find コマンドは inode 番号を検索でき、便利な -delete
スイッチ:
[~]$ls -i 7404301 "la* [~]$find . -maxdepth 1 -type f -inum 7404301 ./"la* [~]$find . -maxdepth 1 -type f -inum 7404301 -delete [~]$ls -i [~]$
何かが足りないかもしれませんが...
rm '"la*'
とにかく、ファイル名には inode はありませんが、ファイルにはあります。ファイルを指すすべてのファイル名を削除せずにファイルを削除しようとすると、ファイル システムが破損します。
あなたが本当に これをやりたい - そしてあなたのユースケースは本当にあなたがする必要があるようには見えません.ファイルシステムのデバッグツールを試すかもしれません.すべてを失う気があるなら、それはそれです。
たとえば、ext2/3/4 の場合、debugfs
コマンドには、inodeを取るように見える「kill_file」オプションがあります。他の回答で述べたように、これは 存在しないファイルを指すディレクトリ エントリが存在するため、ファイル システムに損傷を与えます。 fsck
を実行中 後でこれを修復できる場合があります。マウントされたファイル システムでこれを行うことはまずありません。
強くお勧めします 適切なエスケープ/引用を使用し、通常の rm
でそのようなファイルを削除するだけです 以前の応答で述べたコマンド - そして rm -i
を使用します * のようなグロブ文字を含むファイル名を扱う際の安全性を高めるため