一、使用rm命令刪除
- 直接用rm
先用ls -alt看下文件信息及擁有者等
可以看到擁有者是eve用戶,所以在eve用戶的終端中rm命令即可,
如果是root或者其他,則優(yōu)先用root或其他賬號進(jìn)行刪除
(base) eve@Eve:~$ ls -alt a.txt
-rw-rw-r-- 1 eve eve 0 2月 26 16:17 a.txt
(base) eve@Eve:~$ rm a.txt
(base) eve@Eve:~$
- 如果是文件夾刪除,則需要rm -rf
(base) eve@Eve:~$ rm -rf a
(base) eve@Eve:~$
二、如果rm刪不掉,則需要用chattr修改文件的擴(kuò)展屬性
現(xiàn)象如下:即使使用管理員權(quán)限或root權(quán)限也刪除不了
(base) eve@Eve:~$ rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
(base) eve@Eve:~$ sudo rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
(base) eve@Eve:~$ su root
Password:
root@Eve:/home/eve# rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
同時(shí)可以看到a.txt的屬性如下:
root@Eve:/home/eve# ls -alt a.txt
-rw-rw-r-- 1 eve eve 0 2月 26 15:58 a.txt
三、解決辦法:
lsattr查看文件擴(kuò)展屬性
root@Eve:/home/eve# lsattr a.txt
----i---------e----- a.txt
說明:(更多說明參考四:lsattr及chattr介紹)
i:設(shè)置文件或目錄不可修改、不可刪除、不可重命名、不可移動(dòng);
e:設(shè)置文件或目錄只在系統(tǒng)重新啟動(dòng)后才能訪問。
解決辦法,通過chattr命令來修改刪掉i屬性即可。
(base) eve@Eve:~$ sudo chattr -i a.txt
(base) eve@Eve:~$ lsattr a.txt
--------------e----- a.txt
(base) eve@Eve:~$ rm a.txt
(base) eve@Eve:~$
說明:chattr要用管理員權(quán)限才能修改,所以加sudo
修改后,通過lsattr可以查看修改后的擴(kuò)展權(quán)限已經(jīng)沒有了i,所以rm刪除即可刪除成功。
注意: 如果chattr移除i屬性還是報(bào)錯(cuò),如:
(base) eve@Eve:~$ sudo chattr -i a.txt
Usage: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...
說明chattr命令有問題,建議從github下載源碼,或者從這里下載源碼:
然后執(zhí)行g(shù)cc chattr.c -o chattr.out
再用生成的chattr.out來刪除i屬性,命令參考如下:文章來源:http://www.zghlxwxcb.cn/news/detail-483043.html
(base) eve@Eve:~$ gcc chattr.c -o chattr.out
(base) eve@Eve:~$ ls
chattr.out
(base) eve@Eve:~$ sudo ./chattr.out -i a.txt
再執(zhí)行刪除即可刪除成功:文章來源地址http://www.zghlxwxcb.cn/news/detail-483043.html
(base) eve@Eve:~$ rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
四、lsattr及chattr介紹
lsattr 命令是用于顯示 Linux 文件和目錄的擴(kuò)展屬性的工具。
這些屬性是文件系統(tǒng)提供的一種機(jī)制,用于控制文件和目錄的訪問、更改和刪除等行為。
lsattr 命令的常用選項(xiàng)如下:
-a:顯示隱藏文件和目錄的屬性;
-d:如果指定的參數(shù)是目錄,那么只顯示目錄的屬性;
-R:遞歸顯示目錄及其子目錄中的所有文件和目錄的屬性;
-v:顯示每個(gè)文件或目錄的版本號。
常用的文件或目錄屬性如下:
i:設(shè)置文件或目錄不可修改、不可刪除、不可重命名、不可移動(dòng);
a:設(shè)置只能在文件或目錄中添加內(nèi)容,不能修改和刪除;
c:設(shè)置自動(dòng)壓縮文件或目錄;
d:設(shè)置目錄被刪除時(shí),其內(nèi)容應(yīng)該被保留在磁盤上,但不可訪問;
s:設(shè)置文件或目錄在被刪除時(shí),其空間將被清空,但數(shù)據(jù)可以恢復(fù);
u:設(shè)置文件或目錄被刪除時(shí),可以通過恢復(fù)工具來恢復(fù);
e:設(shè)置文件或目錄只在系統(tǒng)重新啟動(dòng)后才能訪問。
這些屬性可以通過 chattr 命令進(jìn)行設(shè)置和修改。例如,chattr +i filename 將文件 filename 的屬性設(shè)置為不可修改、不可刪除、不可重命名、不可移動(dòng)。
chattr 是 Linux 系統(tǒng)下的一個(gè)命令,用于修改文件或目錄的屬性。chattr 命令可用于設(shè)置或清除某些擴(kuò)展屬性,這些屬性有助于在文件或目錄中啟用或禁用某些高級功能。chattr 命令只能被 root 用戶或具有 CAP_LINUX_IMMUTABLE 許可的用戶執(zhí)行。
chattr 命令的一些常用選項(xiàng)和屬性如下:
-R 遞歸地更改目錄及其下面的所有文件和子目錄的屬性。
-v 顯示修改屬性的詳細(xì)信息。
+ 啟用某個(gè)屬性。
- 禁用某個(gè)屬性。
= 設(shè)置屬性,刪除不在命令行中指定的所有屬性。
a 使文件或目錄只能以追加方式打開(只允許在文件末尾添加數(shù)據(jù))。
c 允許文件自動(dòng)壓縮。
d 允許文件被寫入后進(jìn)行同步寫入。
i 防止文件被修改、重命名、刪除或鏈接。
j 允許文件被寫入后進(jìn)行同步寫入,但僅適用于 Ext3 和 Ext4 文件系統(tǒng)。
s 允許文件被安全地刪除。
u 允許文件被恢復(fù)。
例如,要將 /var/log/messages 文件設(shè)置為不允許被修改,可以使用以下命令:
css
Copy code
sudo chattr +i /var/log/messages
如果要取消該屬性,則可以使用以下命令:
css
Copy code
sudo chattr -i /var/log/messages
到了這里,關(guān)于linux如何徹底的刪除文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!