GNU/Linux >> Linux の 問題 >  >> Linux

inode 番号を使用して Linux でファイルを削除する

その他の方法には次のようなものがあります:

特殊文字のエスケープ:

[~]$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 を使用します * のようなグロブ文字を含むファイル名を扱う際の安全性を高めるため


Linux
  1. Linuxコマンドラインで力を使用する

  2. コマンドラインを使用してLinuxでtar.gzファイルを抽出する方法

  3. コマンドラインを使用してLinuxでユーザーを削除する方法

  1. Linuxのiノード番号とは何ですか?

  2. LinuxコマンドラインからのGoogleドライブの使用

  3. Linuxでのファイルコマンドの基本的な例

  1. Linuxでmkfsコマンドを使用して、ディスクまたはパーティション上のファイルシステムをフォーマットする

  2. Linuxのコマンドラインを使用してファイルを作成する

  3. Linuxでファイルをコピー、読み取り、削除するコマンドは何ですか