С помощью команды find найти файлы, которые никогда не модифицировались OC UNIX
Используя команду find, необходимо найти и вывести на экран содержимое всех файлов в поддереве каталогов, размер которых находится в каком-то произвольном диапазоне и которые никогда не модифицировались. C размерностью файла все понятно, но как прописать условие, что файлы никогда не модифицировались, подскажите, пожалуйста
Ответы (1 шт):
Автор решения: Joker
→ Ссылка
Можно считать что файл не модифицировался, если время его создания равно времени модификации, тогда найти такие файлы и вывести их содержимое можно такой командой:
find . -type f -exec stat -c %n#%Y#%W {} \; | awk -F# '{if ($2 == $3) print $1}' | xargs cat
Что здесь происходит:
- запускается команда
stat -c %n#%Y#%Wдля каждого файла, где: %Y - время последней модификации данных в секундах с начала Эпохи, %W - время создания файла в секундах с начала Эпохи; 0, если неизвестно. - эти даты сравниваются здесь:
'{if ($2 == $3) print $1}'. Если условие истинно выводится имя файла которое передаётся в первом пункте как%n - имена всех найденных файлов поступают на вход
xargs, который запускает команду вывода содержимого.