Saya memiliki direktori di sistem Debian saya. Direktori tersebut adalah:
root@debian:/3/20150626# stat 00
File: `00'
Size: 6 Blocks: 0 IO Block: 4096 directory
Device: fe00h/65024d Inode: 4392587948 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2015-06-25 20:00:00.086150791 -0400
Modify: 2015-07-07 12:39:04.174903234 -0400
Change: 2015-07-07 12:39:04.174903234 -0400
Birth: -
Direktori kosong:
root@debian:/3/20150626# ls -al 00
total 0
drwxr-xr-x 3 root root 6 Jul 7 12:39 .
drwxr-xr-x 3 root root 23 Jul 7 12:56 ..
Tetapi sistem saya tidak berpikir begitu:
root@debian:/3/20150626# rm -rf 00
rm: cannot remove `00': Directory not empty
Saya tidak tahu mengapa ini akan terjadi juga saya tidak dapat menemukan cara untuk bergerak maju. Adakah yang bisa memberikan bantuan?
Tak satu pun dari pertanyaan sebelumnya yang dapat saya temukan memecahkan masalah khusus ini. Tetapi, untuk menjawab beberapa pertanyaan yang saya lihat ditanyakan pada posting serupa:
a.) Folder itu dibuat oleh proses yang berjalan, yang telah membuat banyak folder sebelumnya dan folder ini telah dihapus berkali-kali sebelumnya. Yang spesifik ini terjebak dalam limbo.
b.) Seharusnya tidak ada apa pun yang ditulis ke direktori ini sekarang. Saya telah memeriksa berkali-kali dan ls -al
hasilnya selalu tidak menghasilkan apa-apa.
c.) Saya telah memeriksa lsof dan tidak ada yang terbuka untuk direktori ini:
root@debian:/3/20150626# lsof 00
root@debian:/3/20150626#
d.) rm
tidak alias apa pun. Cukup dekat dengan stok Debian ... tidak ada yang istimewa yang dilakukan dengan program inti Bash seperti rm
, dll.
e.) Mengganti nama diizinkan tetapi masih tidak dapat menghapus:
root@debian:/3/20150626# mv 00 delete_me
root@debian:/3/20150626# ls -al
total 0
drwxr-xr-x 3 root root 30 Jul 7 13:45 .
drwxr-xr-x 7 root root 105 Jul 7 12:57 ..
drwxr-xr-x 3 root root 6 Jul 7 12:39 delete_me
root@debian:/3/20150626# rm -rf delete_me
rm: cannot remove `delete_me': Directory not empty
root@debian:/3/20150626# ls -al delete_me/
total 0
drwxr-xr-x 3 root root 6 Jul 7 12:39 .
drwxr-xr-x 3 root root 30 Jul 7 13:45 ..
** Catatan, selanjutnya disebut sebagai "delete_me" sejak saya menamainya kembali dan saya hanya akan mengikuti arus.
f.) Ini adalah satu-satunya direktori yang dikembalikan ketika saya menjalankannya find
.
root@debian:/3/20150626# find / -type d -name delete_me
/3/20150626/delete_me
root@debian:/3/20150626# find delete_me
delete_me
g.) lsattr tidak menunjukkan apa-apa:
root@debian:/3/20150626# lsattr
---------------- ./delete_me
lsattr
untuk melihat apakah ada atribut khusus yang ditugaskan padanya?stat
output (dan / atau coba lagi rmdir)?Jawaban:
Menemukan jawabannya. Ada yang salah dengan tautannya, seperti yang disarankan @JeffSchaller. Solusinya adalah menjalankan xfs_check untuk melihat bahwa tautannya salah, kemudian xfs_repair untuk memperbaikinya.
mount
untuk melihat nama perangkat. punya saya/dev/mapper/vg3-lv3
umount /3
xfs_check /dev/mapper/vg3-lv3
yang mengembalikan yang berikut:link count mismatch for inode 4392587948 (name ?), nlink 3, counted 2
link count mismatch for inode 12983188890 (name ?), nlink 1, counted 2
xfs_repair /dev/mapper/vg3-lv3
yang menunjukkan bahwa tautan diperbaiki:resetting inode 4392587948 nlinks from 3 to 2
resetting inode 12983188890 nlinks from 1 to 2
Ternyata saya memiliki inode lain yang tertaut salah.
Terima kasih atas semua bantuan selain menggunakan sihir hitam xfs_repair, masalah saya terpecahkan.
sumber
Anda mencoba memverifikasi bahwa atribut folder / direktori memiliki atribut " i " - imutable aktif! Periksa dengan perintah lsattr untuk memverifikasi bahwa folder / direktori memiliki atribut " i " aktifkan jika Anda mematikannya dengan "*
* "Dengan ini Anda dapat melakukan tugas yang Anda inginkan.
sumber
-i
atribut pada file / folder tidak mencegah dari muncul, namun di mana Anda melihat bahwa-i
adalah set? Output OP menyatakan sebaliknya