Если вы используете bash, вы можете использовать операцию pushd / popd, чтобы изменить каталог и быть обязательно в.
у небольшой небольшой скрипт, чтобы каждый день освобождать пространство на моем linux через CRON, если каталог кеша становится слишком большим. Так как я очень хорошо разбираюсь в bash-скриптинге, мне понадобится небольшая помощь от вас, гуру Linux.
Вот в основном логика (псевдокод)
if ( Drive Space Left < 5GB )
{
change directory to '/home/user/lotsa_cache_files/'
if ( current working directory = '/home/user/lotsa_cache_files/')
{
delete files in /home/user/lotsa_cache_files/
}
}
Получение места на диске осталосьЯ планирую освободить место на диске от команды '/ dev / sda5'. Если возвращает мне следующее значение для вашей информации:
Filesystem 1K-blocks Used Available Use% Mounted on<br>
/dev/sda5 225981844 202987200 11330252 95% /
Поэтому для получения значения «11330252» из возвращаемого значения может понадобиться небольшое регулярное выражение.
Немного паранойиЧасть 'if (текущий рабочий каталог = / home / user / lotsa_cache_files /)' - это всего лишь защитный механизм от паранойи внутри меня. Я хочу убедиться, что я действительно нахожусь в '/ home / user / lotsa_cache_files /', прежде чем я продолжу выполнение команды удаления, которая потенциально разрушительна, если текущий рабочий каталог по какой-то причине отсутствует.
Удаление файловУдаление файлов будет выполнено с помощью приведенной ниже команды вместо обычного rm -f:
find . -name "*" -print | xargs rm
Это связано с неспособностью систем linux 'rm' каталогить, если он содержит слишком много файлов, как я узнал в прошлом.