Вы хотите отсортировать полный набор "недавних" файлов по времени их доступа / изменения, независимо от их местоположения в дереве файлов?
Один способ сделать это - использовать stat
для вывода времени модификации для каждого файла, отсортировать
по результату, а затем вырезать
время модификации из результатов.
Это не работает для файлов, содержащих символы новой строки в своих именах, но для других файлов здесь есть решение, которое будет перечислять файлы, измененные за последние 60 минут, в порядке от самых последних до самых последних измененных:
find . -type f -mmin -60 -exec stat -c $'%Y\t%n' {} + | sort -nr | cut -f2-
Tenga en cuenta el conflicto implícito entre la barra inclinada utilizada como separador para el patrón de sustitución y el reemplazo, y la barra inclinada utilizada como separador de directorio. Si el directorio actual es, p. /foo/bar
, la cadena que le estás dando a tar
es
/^/foo/bar//foo/bar/package/
donde ^
se toma como patrón, foo
como reemplazo y el resto como banderas. Aquí, recibo un error para elb
:
tar: Invalid replacement flag b
Afortunadamente, el tar
en mi Mac acepta otros caracteres en lugar del separador de barra, por lo que puede usar, por ejemplo, ~
, lo que facilita la colocación de rutas completas en el patrón. p.ej. -s "~^a$~x/y~"
funciona y cambia el nombre de a
a x/y
.
Barra invertida -Los escapes (\/
, \057
o\x2f
)no parecen funcionar, por lo que deberá elegir como separador algún carácter que no necesite en los propios patrones.