Если вы используете 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' каталогить, если он содержит слишком много файлов, как я узнал в прошлом.

Ответы на вопрос(1)

Ваш ответ на вопрос