Вы можете вручную освободить кеш памяти следующей простой командой:
sk@sk:~$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
Однако, если вы хотите заставить ОС Linux очистить кеш памяти на определенный интервал, просто добавьте команда для задания cron. Здесь я покажу вам, как.
Откройте свой терминал и введите следующую команду, чтобы создать файл cacheclear.sh. Скажем, например, я создаю файл cacheclear.sh в каталоге my / home:
sk@sk:~$ sudo vi /home/cacheclear.sh
Добавьте следующие строки в файл cacheclear.sh:
#!/bin/sh
sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
Сохраните и выйдите из файл. Теперь добавьте этот файл в корневой каталог crontab:
sk@sk:~$ sudo crontab -e
Эта команда открывает корневой crontab.
Добавьте следующую строку в конец:
0 * * * * /home/cacheclear.sh
[d7 ] Сохранить и выйти из файла. Как только вы закончите, задание cron будет запускать эту команду каждый час и очистит кэш системной памяти. rm -rf /path/to/directory
Чтобы удалить все содержимое папки (включая все внутренние папки), но не самой папки: rm -rf /path/to/directory/*
Чтобы удалить все «файлы» «изнутри папки (не удаляя внутренние папки): rm -f /path/to/directory/*
Где:
Чтобы удалить папку со всем ее содержимым (включая все внутренние папки): [ f1] -f - означает «сила», которая полезна, когда вы не хотите, чтобы вас спросили / предложили, если вы хотите удалить архив, например. Чтобы удалить все содержимое папки (включая все внутренние папки), но не самой папки:rm -rf /path/to/directory/*
Чтобы удалить все файлы в каталоге (включая скрытые файлы и подкаталоги):
rm -rf /path/to/directory/{*,.*}
Если вы хотите удалить только файлы в каталоге / path / to /, вы можете сделать
find /path/to/directory -type f -print0| xargs -0 rm
или
find /path/to/directory -type f -exec rm '{}' \;
Вы можете делать нагрузки с помощью find, преимущество заключается в том, что вы можете перечислить то, что найдено, не доведя его до rm, чтобы вы могли видеть, что будет удалено до начала.
Если вы также хотите удалить все подкаталоги и сам каталог, вы можете использовать rm -rf /path/to/directory. Но всегда проверяйте свою линию, прежде чем нажимать «возврат», rm -rf может вызвать много хаконов, например, если вы случайно вставляете пробел после первой косой черты при наличии прав суперпользователя ...
Чтобы удалить все файлы и каталоги (включая скрытые) в каталоге, вы можете попробовать следующее:
удалить папку, а затем воссоздать ееrm -rf dir_name && mkdir dir_name
использовать find find dir_name -mindepth 1 -delete
[ ! d2] Здесь мы указываем -mindepth 1 для исключения самого каталога dir_name. Взгляните на следующую ссылку: https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
Вы можете cd войти в каталог, а затем запустить команду rm *.* так же, как в DOS, если вы помните.
Чтобы удалить текущий каталог, вы можете использовать, например, rm -d ./*
-d, чтобы удалить каталоги.
Поскольку этот вопрос постоянно находится на вершине Google, когда я сам это ищу:
Другие ответы страдают от разных проблем:
Некоторые из них включают . и .., который является шумным, запутанным и раздражающим. Некоторые из них забывают скрытые файлы (файлы, начинающиеся с точки). Они не удаляются в правильном (в самом начале) порядке, чтобы разрешить удаление каталога. Они спускаются в другие (смонтированные) файловые системы, что часто нежелательно. Их трудно расширить с дополнительными параметрами (подробнее об этом ниже).find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
Обратите внимание, что я добавил аргумент -xdev, чтобы предотвратить спуск в mounts (например [ f6] и т. д.).
Несмотря на то, что люди постоянно меня заворачивают, эти методы имеют недостаток: это не похоже на они достаточно расширяемы, чтобы позволить -prune вводить подкаталог (не вводя больше проблем). В отличие от этого метода вы можете вставить
-not \( -path "${DIR}/subdir" -prune \)
перед аргументом -mindepth, чтобы исключить subdir из его содержимого.