ホームページ >運用・保守 >Linuxの運用と保守 >Linux で i ノードを使用して指定したファイルを削除する方法の例

Linux で i ノードを使用して指定したファイルを削除する方法の例

黄舟
黄舟オリジナル
2017-10-14 11:03:062022ブラウズ

ファイルの i ノードは、ファイルのサイズ、所有者、およびファイルのその他の特性を定義します。すべてのファイルとディレクトリには、独自の一意の i ノード番号があります。以下の記事では、Linux での inode を使用した指定ファイルの削除に関する関連情報を中心に紹介します。必要な方は一緒に参照してください。

はじめに

ご存知のとおり、Linux では、ファイル名が文字化けしたり、特殊な漢字が含まれているファイルに遭遇することがありますが、現時点では、ファイル名に基づいて削除するのは困難です。

同時に、Linux のファイルには独自の一意の i ノード値が必要です。現時点では、その i ノードを使用して異常なファイル名のファイルを削除できます。 cortions操作のオブジェクトは、通常、次のファイルと同様のファイルです。 Windows 作成されたファイル名の一部は Linux では正常に認識できません

3. 中国語の特殊文字を認識できません

解決策は次のとおりです:

1. これらのファイルの i ノード値をクエリします。

ll -i


[root@server tmp]# ll 
 
总用量 61404-rw-r--r-- 1 root root 0 6月 16 14:58 ? 
 
-rw-r--r-- 1 root root 0 6月 19 12:29 ?? 
 
-rw-r--r-- 1 root root 0 6月 21 14:53 ???3kqU-rw-r--r-- 1 root root 0 6月 21 14:53 ?6;?Xf??mA???9???T֙ 
 
-rw-r--r-- 1 root root 0 6月 19 12:29 9y??????sy?z?D?l???I?MO???8z????@]9??U@?XlAI]?k

上の左端の数字は、対応するファイルのinode値です。ただし、rmコマンドを使用してファイルを直接削除することはできず、他のコマンドが必要です

2. 異常なファイルを削除します
通常の状況では、このようなファイルが存在することはほとんどありません。ただし、rm コマンドを使用する場合は、事前にテストを行う必要があります。文字化けしたファイルはないので、テストには通常のファイルを使用できます。

最初に必要なファイルを作成します


[root@server tmp]# ll -i 
 
总用量 6140415206100 -rw-r--r-- 1 root root 0 6月 16 14:58 ?15206090 -rw-r--r-- 1 root root 0 6月 19 12:29 ??15206092 -rw-r--r-- 1 root root 0 6月 21 14:53 ???3kqU15206233 -rw-r--r-- 1 root root 0 6月 21 14:53 ?6;?Xf??mA???9???T֙ 
 
15206235 -rw-r--r-- 1 root root 0 6月 21 14:53 A??K?

(1) find に付属の delete パラメーターを使用します。 aaa ファイルを削除するには



[root@zstest1 tmp]# cd /tmp 
 
[root@zstest1 tmp]# touch aaa bbb ccc ddd eee 
 
[root@zstest1 tmp]# ll -i 
 
总用量 01442581 -rw-r--r-- 1 root root 0 9月 22 15:00 aaa1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(2) find に付属する -exec パラメータと rm コマンドを使用して bbb ファイルを削除します (削除を確認します)


[root@zstest1 tmp]# find ./* -inum 1442581 -delete 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb 
 
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc 
 
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(3) find と rm コマンドに付属する -exec パラメーターを使用して ccc ファイルを削除します (削除を確認せずに)


[root@zstest1 tmp]# find ./* -inum 1442582 -exec rm -i {} \; 
 
rm:是否删除普通空文件 "./bbb"?y 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc 
 
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(4) find と xargs を使用して ddd ファイルを削除します (-i パラメーターは削除確認)


[root@zstest1 tmp]# find ./* -inum 1442583 -exec rm -f {} \; 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee

(5) rmコマンドを使用して、指定したファイル(findコマンドで見つかったファイル)を削除します name)


[root@zstest1 tmp]# find ./* -inum 1442584 |xargs rm -f 
 
[root@zstest1 tmp]# ll -i 
 
总用量 0 
 
1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee


まとめると、



上記のさまざまな削除方法は通常、ファイルの i ノード値を指定し、find コマンドの -inum オプションを使用してファイル名を確認し、削除のために rm コマンドに渡します


完了、ははは



以上がLinux で i ノードを使用して指定したファイルを削除する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。