Linux下使用inode删除指定文件方法示例
<p><span><strong>前言</strong></span></p>
<p>
众所周知在Linux中,有时候会遇到文件名是乱码或者是某些特殊中文的文件,这时候通过文件名就很难删除。</p>
<p>
同时,对于linux中的任何一个文件都必然有其唯一的inode值,这时候就可以通过inode来删除异常文件名的文件。</p>
<p>
<strong>操作的对象一般为类似下面的文件:</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_444545">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ll </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">总用量 61404-rw-r--r-- 1 root root 0 6月 16 14:58 ? </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">-rw-r--r-- 1 root root 0 6月 19 12:29 ?? </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">-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֙ </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">-rw-r--r-- 1 root root 0 6月 19 12:29 9y??????sy?z?D?l???I?MO???8z????@]9??U@?XlAI]?k</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>产生这类文件的原因:</strong></span></p>
<p>
1.上传文件时网络异常导致</p>
<p>
2.Windows创建的某些文件名在Linux下无法正常识别</p>
<p>
3.中文特殊字符无法识别</p>
<p>
<span><strong>解决方法如下:</strong></span></p>
<p>
<strong>1.查询这些文件的inode值</strong></p>
<p>
ll -i</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_94767">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">总用量 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֙ </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">15206235 -rw-r--r-- 1 root root 0 6月 21 14:53 A??K?</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
以上,最左边的数字即为对应文件的inode值,不过无法直接使用rm命令删除文件,需要其他命令配合使用</p>
<p>
<strong>2.删除异常文件</strong></p>
<p>
正常情况下这些文件也是可遇不可求的,不过涉及到rm的命令要小心谨慎,事前做一下测试,熟练下操作怎么也是不为过的,没有这些乱码的文件,可以使用正常的文件做测试,</p>
<p>
有以下这几种方法:</p>
<p>
先创建需要的文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_798490">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># cd /tmp </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># touch aaa bbb ccc ddd eee </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">总用量 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</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
(1)使用find自带的delete参数进行删除aaa文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_533421">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># find ./* -inum 1442581 -delete </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">总用量 0 </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">1442582 -rw-r--r-- 1 root root 0 9月 22 15:00 bbb </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc </code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd </code>
</div>
<div class="line number12 index11 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
(2)使用find自带的-exec参数结合rm命令删除bbb文件(进行删除确认)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_548849">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># find ./* -inum 1442582 -exec rm -i {} \; </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">rm</code><code class="bash plain">:是否删除普通空文件 </code><code class="bash string">"./bbb"</code><code class="bash plain">?y </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">总用量 0 </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">1442583 -rw-r--r-- 1 root root 0 9月 22 15:00 ccc </code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd </code>
</div>
<div class="line number12 index11 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain">1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
(3)使用find自带的-exec参数结合rm命令删除ccc文件(不进行删除确认)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_508803">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># find ./* -inum 1442583 -exec rm -f {} \; </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">总用量 0 </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">1442584 -rw-r--r-- 1 root root 0 9月 22 15:00 ddd </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash plain">1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
(4)使用find和xargs结合删除ddd文件(无法使用-i参数进行删除确认)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_913946">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># find ./* -inum 1442584 |xargs rm -f </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">总用量 0 </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">1442585 -rw-r--r-- 1 root root 0 9月 22 15:12 eee</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
(5)使用rm命令删除指定文件(由find命令找到的文件名)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_542186">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
<div class="line number17 index16 alt2">
17</div>
<div class="line number18 index17 alt1">
18</div>
<div class="line number19 index18 alt2">
19</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain"></code><code class="bash comments"># rm `find ./* -inum 1442574` </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number3 index2 alt2">
<code class="bash functions">rm</code><code class="bash plain">:是否删除普通空文件 </code><code class="bash string">"./eee"</code><code class="bash plain">?y </code>
</div>
<div class="line number4 index3 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain"></code><code class="bash comments"># ll </code>
</div>
<div class="line number6 index5 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number7 index6 alt2">
<code class="bash plain">总用量 0 </code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number9 index8 alt2">
<code class="bash comments"># 使用find命令的-inum选项确认文件名 </code>
</div>
<div class="line number10 index9 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain"></code><code class="bash comments"># touch fff </code>
</div>
<div class="line number12 index11 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number13 index12 alt2">
<code class="bash plain"></code><code class="bash comments"># ll -i </code>
</div>
<div class="line number14 index13 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number15 index14 alt2">
<code class="bash plain">总用量 01442574 -rw-r--r-- 1 root root 0 9月 22 15:38 fff </code>
</div>
<div class="line number16 index15 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number17 index16 alt2">
<code class="bash plain"></code><code class="bash comments"># find ./* -inum 1442574 </code>
</div>
<div class="line number18 index17 alt1">
<code class="bash spaces"> </code>
</div>
<div class="line number19 index18 alt2">
<code class="bash plain">.</code><code class="bash plain">/fff</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>总结一下:</strong></span></p>
<p>
以上几种不同的删除方式,总体来说都是通过指定文件的inode值,使用find命令的-inum选项确认其文件名,然后传递给rm命令进行删除</p>
<p>
完毕,呵呵呵</p>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:https://mp.weixin.qq.com/s/oi7OYPpTsdyN0f8tJ0AEPA</p>
頁:
[1]