Переместить/трансформировать все из pwd в подкаталог при архивировании с помощью tar

Вы хотите отсортировать полный набор "недавних" файлов по времени их доступа / изменения, независимо от их местоположения в дереве файлов?

Один способ сделать это - использовать stat для вывода времени модификации для каждого файла, отсортировать по результату, а затем вырезать время модификации из результатов.

Это не работает для файлов, содержащих символы новой строки в своих именах, но для других файлов здесь есть решение, которое будет перечислять файлы, измененные за последние 60 минут, в порядке от самых последних до самых последних измененных:

find . -type f -mmin -60 -exec stat -c $'%Y\t%n' {} + | sort -nr | cut -f2-
0
15.05.2018, 23:08
1 ответ

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 tares

/^/foo/bar//foo/bar/package/

donde ^se toma como patrón, foocomo reemplazo y el resto como banderas. Aquí, recibo un error para elb:

tar: Invalid replacement flag b

Afortunadamente, el taren 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 aa x/y.

Barra invertida -Los escapes (\/, \057o\x2f)no parecen funcionar, por lo que deberá elegir como separador algún carácter que no necesite en los propios patrones.

3
28.01.2020, 02:23

Теги

Похожие вопросы