stat
поможет вам узнать, когда файл был изменен, или его размер, или почти все атрибуты файла, которые будет отображать ls
.
Во FreeBSD, например, stat -f %Sm -t %d -- foo
покажет вам день месяца, когда файл foo
был изменен в последний раз, что, по-видимому, и является тем, что вам нужно.
Нет необходимости в find
, вы можете напрямую перебирать файлы, как в этом bash
примере:
for f in *; do
d=$(stat -f %Sm -t %d -- "$f")
cp -p -- "$f" $d/
done
В ответ на ваш комментарий о том, что ваша целевая ОС — RedHat, похоже, что утилита RedHat stat
не обладает той гибкостью форматирования, которая есть у FreeBSD. Вы можете сравнить справочные страницы здесь .
Вы можете найти подходящую замену команде date -r foo "+%d"
. Тогда соответствующая строка сценария станет:
d=$(date -r "$f" "+%d")
Глава 5.3, а точнее второе Важное поле , говорит вам извлечь пакет, перейти в каталог, созданный в процессе извлечения, следовать инструкциям, вернуться в родительский каталог и удалить извлеченные исходники .
Так что да, вам придется снова разархивировать, так как вы удалили извлеченную структуру каталогов.
Большинство (все? Инструкции )просят вас создать каталог build
в верхней части извлеченной структуры.