То, что вы печатаете, похоже, является правильным именем файла (как оно хранится в каталоге).
File: `\001\360\265E@X\342p@8\b@'
Вы можете восстановить имя (в байтах) из этого с помощью:
$ printf '%b' '\001\360\265E@X\342p@8\b@' | od -An -tx1
soh p 5 E @ X b p @ 8 bs @
01 f0 b5 45 40 58 e2 70 40 38 08 40
Как видите, строка начинается с управляющего символа (soh) или шестнадцатеричного 0x01 (Octal \ 001). Это имеет как плохие эффекты (файл трудно стереть), так и хорошие эффекты (очень маловероятно, что файл с тем же именем существует в каталоге).
После перемещения всех (других) файлов из каталога (на всякий случай).
Вы можете попытаться стереть файл, набрав rm
, затем первый символ (soh) файла и звездочку ( *
) (аналогично тому, как вы делаете ] стереть *
). Уловка для ввода 0x01
заключается в том, чтобы ввести оба Ctrl и v , отпустить их и ввести оба Ctrl и A (без смены). ^ A
должен появиться в позиции курсора. Затем введите звездочку *
. Вы должны увидеть эту строку на своей консоли:
rm ^A*
Затем нажмите Enter, и, если он работает, файл должен исчезнуть.
Если это не сработает (попробуйте пару раз), всегда есть ядерное решение. Переместите и сотрите все остальные файлы, перейдите в родительский каталог, а затем выполните:
rm -rf ./CorrectDirectory ### Be careful this will erase ANYthing.
Весь каталог (включая файл) исчезнет.
Надеюсь, нам не нужно беспокоиться о том, есть ли у нас одна папка или несколько папок. если мы удалим файлы с измененным временем.
Просто проверьте Хранилище и удалите 10 самых старых файлов в папке
if [ $CurrentStorage -ge $StorageThreshold ];
then
find $RootFolder -type f -printf '%T+ %p\n' | sort | head -n 10 | awk '{print $NF}' | xargs rm -f
else
echo "Storage threshold not yet reached."
fi
-type f -printf '%T+ %p\n'
распечатать файлы с отметкой времени последнего изменения. sort
, чтобы получить самый старый файл сверху. head -n 10
, чтобы получить 10 самых старых файлов. awk '{print $NF}'
, чтобы извлечь путь к файлу. xargs rm -f
удалить извлеченные файлы.Для MAC:
find $RootFolder -type f -print0 | xargs -0 ls -ltr | head -n 10 | awk '{print $NF}' | xargs rm -f
Да и пустая папка вряд ли займет место в 4Кб. Если вы хотите удалить все пустые папки, кроме последней, включите приведенный ниже код.
find $RootFolder -type d -empty -printf '%T+ %p\n' | sort | head -n -1 | xargs rm -rf
Или
ls -lt $RootFolder/* | awk -F ":" '/total 0/{print last}{last=$1}' | tail -n +2 | xargs rm -rf