#shell #bash #linux
Пробовал варианты: ls -lrt | awk '{ f=$NF }; END{ print f }' и ls -t1 | head -n1 Но последний скопированный в папку файл не показывается. Какие еще есть варианты? UPD: Вариант тоже не работает: ls -t1 | tail -n1 Все эти команды выдают всегда какое-то одно имя файла для моей папки. Хотя файлы продолжают непрерывно поступать в папку. Нужен именно последний попавший в папку файл. Это необязательно должен быть самый новый файл.
Ответы
Ответ 1
@abg, время модификации файла измеряется в секундах. Поэтому при массовом копировании таких файлов (с одинаковым временем) будет много. Ваша команда ls -t1 | tail -n1 показывает последний (самый старый, а не свежий) файл. А вот ls -t | head -1 покажет самый новый (один из них). А вообще-то, если опишите задачу поподробнее, то может быть найдется какое-то лучшее решение.Ответ 2
Для общего случая, возможно, подойдет cp -v 'from' 'to' | tail -1 Чтобы выделить название файла, наверное, придется воспользоваться регуляркой. Примерно так: cp -v 'from' 'to' | tail -1 | sed 's/.*\/\(.*\)»$/\1/'
Комментариев нет:
Отправить комментарий