Можете ли вы сказать мне любую команду для сортировки / копирования / удаления каталогов, которые были изменены (или созданы, хотя Linux не показывает это) в конкретную дату, т.е. вчера, и они находятся в другом каталоге?
2 ответа
1
Я бы использовал find
и указать -mtime
так например
cd /var/log/apache2
find *.log -mtime -1 -exec ls -l --time-style=iso {} \;
выведет следующее:
-rw-r ----- 1 root adm 440 09-10 20:00 error.log
-rw-r ----- 1 root adm 3944602 09-11 02:08 other_vhosts_access.log
если бы я хотел скопировать их, я бы сделал следующее:
find * .log -mtime -1 -exec cp -v {} /tmp / \;
будет выводить:
error.log' ->
/tmp/error.log'
other_vhosts_access.log' ->
/tmp/other_vhosts_access.log'
больше на mtime:
For example:
find . -mtime 0 # find files modified between now and 1 day ago
# (i.e., within the past 24 hours)
find . -mtime -1 # find files modified less than 1 day ago
# (i.e., within the past 24 hours, as before)
find . -mtime 1 # find files modified between 24 and 48 hours ago
find . -mtime +1 # find files modified more than 48 hours ago
find . -mmin +5 -mmin -10 # find files modified between
# 6 and 9 minutes ago
-1
Вы можете использовать конвейерные команды для достижения этой цели. Надеюсь это поможет.
rmdir `ls -lt | grep -v "\`date '+%h %d'\`" | awk '{print $NF}'`