>  기사  >  운영 및 유지보수  >  Linux에서 inode를 사용하여 지정된 파일을 삭제하는 방법의 예

Linux에서 inode를 사용하여 지정된 파일을 삭제하는 방법의 예

黄舟
黄舟원래의
2017-10-14 11:03:061962검색

파일의 inode는 파일의 크기, 소유자 및 기타 파일 특성을 정의합니다. 모든 파일과 디렉토리에는 고유한 inode 번호가 있습니다. 그래서 다음 글에서는 리눅스에서 특정 파일을 삭제하기 위해 inode를 사용하는 것에 대한 정보를 주로 소개하고 있습니다. 필요한 친구들이 참고할 수 있도록 하겠습니다.

머리말

우리 모두 알고 있듯이 Linux에서는 파일 이름이 왜곡되거나 일부 특수 한자가 포함된 파일을 접할 때가 있습니다. 이때 파일 이름을 기준으로 삭제하는 것은 어렵습니다.

동시에 Linux의 모든 파일은 고유한 inode 값을 가져야 합니다. 이때 inode를 사용하여 비정상적인 파일 이름을 가진 파일을 삭제할 수 있습니다. heration 운영 객체는 일반적으로 다음과 유사한 파일입니다. Windows 생성된 일부 파일 이름이 Linux에서 정상적으로 인식되지 않습니다

3. 중국어 특수 문자가 인식되지 않습니다.

해결 방법은 다음과 같습니다.

1 해당 파일의 inode 값을 쿼리합니다.

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와 함께 제공되는 삭제 매개변수를 사용하세요. 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 및 rm 명령과 함께 제공되는 -exec 매개변수를 사용하여 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) -ccc 파일을 삭제하기 위한 find 및 rm 명령과 함께 제공되는 exec 매개변수(삭제 확인 없이)


[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


요약하자면:



위의 다양한 삭제 방법은 일반적으로 파일의 inode 값을 지정하고 find 명령의 -inum 옵션을 사용하여 파일 이름을 확인한 다음 삭제를 위해 rm 명령에 전달됩니다


Complete, hahaha


요약


위 내용은 Linux에서 inode를 사용하여 지정된 파일을 삭제하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.