Используйте расширение параметра, чтобы отделить расширение:
#! /bin/bash
date=$(date +%Y%m%d)
for file in * ; do
basename=${file%.*} # Remove extension
extension=${file##*.} # Remove basename
mv "$file" "$basename"_"$date.$extension"
done
Как предполагали другие, у вас, вероятно, есть исходные файлы под / var / lib
. Если вы не загружаете (или не можете) успешно загрузить систему в однопользовательском режиме, вы также можете получить к ним доступ с помощью «привязки монтирования»:
mkdir -p -m700 /mnt/dsk
mount --bind / /mnt/dsk
cd /mnt/dsk/var/lib
Теперь вы находитесь в «старом» / var / lib
, который скрыт под «новым» / var / lib
, и при необходимости вы можете удалить или переместить файлы отсюда.
ВАЖНО файлы под / mnt / dsk
- это те же файлы , что и под /
. Это не копии. Если вы удаляете эти файлы, вы фактически удаляете файлы в корневой файловой системе.
Это потому, что "перенос" вашего /var/lib
на другой раздел не очищает автоматически ваши исходные файлы.
Хитрость заключается в том, чтобы загрузиться с другой системы (возможно, livecd), оттуда смонтировать /dev/xvda1
и удалить имеющиеся там файлы.
Пожалуйста, будьте осторожны и убедитесь, что все файлы действительно доступны на новом разделе, прежде чем пробовать это.
Какова сумма / ( du -sh /
)? Такая же, как в df
99G?
Я знаю, что файлы из /var/lib
все еще находятся на разделе /dev/xvda1
. Они "скрыты" под смонтированным разделом /dev/xvdf
. Вы должны загрузить live cd (например, sysrescure), затем:
mkdir /test
mount /dev/xvda1 /test
и попробовать
du -sh /test/var/
Вы должны увидеть ваше "скрытое" пространство. Вы должны удалить эти файлы.