#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/'
Комментариев нет:
Отправить комментарий