Вы можете сделать это с помощью небольшого кода ASM, см. Главу 11 Руководства по системному программированию Intel
11.5.3 Предотвращение кэширования
Чтобы отключить кеши L1, L2 и L3 после того, как они были включены и получили заполнение кэша, выполните следующие шаги: 1. Введите кэш без заполнения режим.(Установите флаг CD в регистре управления CR0 на 1, а флаг NW на 0. 2. Очистите все кеши с помощью инструкции WBINVD. 3. Отключите MTRR и установите тип памяти по умолчанию на uncached или установить все MTRR для некэшированного типа памяти (см. обсуждение поля TYPE и флага E в Разделе 11.11.2.1, «IA32_MTRR_DEF_TYPE MSR»).
Мне неизвестен модуль Python, который реализует это.
Просто удалите файл из пользовательского интерфейса как Переместить в корзину. , а затем перейдите в корзину и удалите оттуда. Этот процесс навсегда удалит ваш файл из вашей системы Linux.
Такое поведение связано с отсутствием разрешения на выполнение в каталоге, пользователь не может выполнить stat ()
, но может читать записи в каталоге.
Чтобы избежать этого, вы можете выполнить chmod 700
для основного каталога.
Чтобы снова воспроизвести это поведение, вы можете выполнить chmod 600
или chmod 400
в любом каталоге, и это будет иметь ту же проблему.
$ chmod 400 folder
$ ls - ltr folder
-????????? ? ? ? ? ? omd
-????????? ? ? ? ? ? file5
-????????? ? ? ? ? ? file4
-????????? ? ? ? ? ? file3.txt
-????????? ? ? ? ? ? file2.txt
$ chmod 700 folder
$ ls - ltr folder
-rw-rw-r-- 1 tachomi tachomi 2 Mar 2 08:53 file4
-rw-rw-r-- 1 tachomi tachomi 2 Mar 2 08:53 file5
-rw-rw-r-- 1 tachomi tachomi 0 Mar 2 08:53 omd
-rw-rw-r-- 1 tachomi tachomi 2 Mar 2 09:01 file1.txt
-rw-rw-r-- 1 tachomi tachomi 2 Mar 2 09:01 file2.txt
Попробуйте
Это похоже на то, что вам удалось записать мусор в сам inode каталога, а не в файлы внутри него. Тем не менее, попробуйте
find . -type f -delete
который не пытается выполнить shell-расширение файлов и может быть успешным.
EDIT: Ответ tachomi действительно кажется наиболее вероятным объяснением, но невозможно "cd" в каталог с режимом 400, или перечислить его содержимое, когда вы в нем, так что это тоже не совсем подходит:
$ chmod 400 test
$ ls -li test
ls: cannot access test/Pictures: Permission denied
ls: cannot access test/Music: Permission denied
ls: cannot access test/Shows: Permission denied
ls: cannot access test/TV: Permission denied
ls: cannot access test/Movies: Permission denied
total 0
? -????????? ? ? ? ? ? Movies
? -????????? ? ? ? ? ? Music
? -????????? ? ? ? ? ? Pictures
? -????????? ? ? ? ? ? Shows
? -????????? ? ? ? ? ? TV
$ cd test
bash: cd: test: Permission denied
$ chmod 700 test
$ cd test
$ ls -li
total 0
267447 -rw-r--r-- 1 abcd abcd 0 Mar 3 19:45 Movies
267448 -rw-r--r-- 1 abcd abcd 0 Mar 3 19:45 Music
267449 -rw-r--r-- 1 abcd abcd 0 Mar 3 19:45 Pictures
267451 -rw-r--r-- 1 abcd abcd 0 Mar 3 19:45 Shows
267450 -rw-r--r-- 1 abcd abcd 0 Mar 3 19:45 TV
Однако, удаление могло сработать, если процесс удаления GUI изменил разрешения каталога "за кулисами" перед удалением.