Как найти все файлы, которые были созданы только сегодня, а не через 24 часа в unix/linux
Как найти все файлы, которые были созданы сегодня в Unix/Linux?
Ответ 1
В моей системе Fedora 10 с findutils-4.4.0-1.fc10.i386
:
find <path> -daystart -ctime 0 -print
Флаг -daystart
сообщает ему рассчитать с начала сегодняшнего дня, а не с 24 часов назад.
Обратите внимание, однако, что это будет фактически список файлов, созданных или измененных в последний день. find
не имеет параметров, которые смотрят на настоящую дату создания файла.
Ответ 2
find . -mtime -1 -type f -print
Ответ 3
Чтобы найти все файлы, которые были изменены только сегодня (только с начала дня, т.е. 12 часов утра), в текущем каталоге и его подкаталогах:
touch -t `date +%m%d0000` /tmp/$$
find . -type f -newer /tmp/$$
rm /tmp/$$
Ответ 4
Вы не можете. Ответ @Alnitak - это лучшее, что вы можете сделать, и даст вам все новые файлы за период проверки, но -ctime
фактически проверяет время модификации файла inode (дескриптор файла), и поэтому также поймает любой более старые файлы (например), переименованные в последний день.
Ответ 5
Просто имейте в виду, что между августом и 26. есть 2 пробела. Другая мудрая команда find не будет работать.
find . -type f -exec ls -l {} \; | egrep "Aug 26";
Ответ 6
Если вы сделали что-то вроде случайно rsync'd в неправильном каталоге, приведенные выше предложения работают, чтобы найти новые файлы, но для меня проще всего было подключиться к клиенту SFTP, например Transmit, а затем упорядочить по дате и удалить.
Ответ 7
Вы можете использовать find
и ls
для этого:
find . -type f -exec ls -l {} \; | egrep "Aug 26";
Он найдет все файлы в этом каталоге, отобразит полезную информацию (-l
) и отфильтрует строки с какой-то определенной датой... Это может быть немного медленнее, но при этом полезно в некоторых случаях.