У меня есть куча недисциплинированных пользователей с почтовыми учетными записями на моем сервере. Они никогда не очищают свои папки для мусора и мусора, а количество файлов увеличивается до бесконечности.
Я создаю скрипт Bash для периодического стирания этих файлов с помощью cron.
Я сделал это:
- создайте текстовый файл со списком каталогов, которые я хочу стереть;
- создайте скрипт, который будет читать построчно каждый каталог и стирать все с
cur
иnew
.
Пример текстового файла:
~/mail/.Junk/cur
~/mail/.Junk/new
~/mail/.Trash/cur
~/mail/. Trash/new
~/mail/.administrative@example.com/.Junk/cur
~/mail/.administrative@example.com/.Junk/new
~/mail/.administrative@example.com/.Trash/cur
~/mail/.administrative@example.com/.Trash/new
~/mail/.finance@example.com/.Junk/cur
~/mail/. finance@example.com/.Junk/new
~/mail/. finance@example.com/.Trash/cur
~/mail/. finance@example.com/.Trash/new
Я нахожусь на первом этапе создания сценария, где я проверяю, могу ли я получить доступ к каталогам и перечислить их содержимое.
Итак, у меня есть этот скрипт:
#!/bin/bash
while read line
do
ls $line
done < ~/directories.txt
Когда я запускаю скрипт, я получаю следующую ошибку:
ls: не может получить доступ к ~/mail/.administrative@example.com/.Junk/new/: нет такого файла или каталога
для всех каталогов, но если я наберу
ls ~/mail/.administrative@example.com/.Junk/new/
это работает отлично.
Зачем?