Ваша первая команда
ls -tr
, правильно перечисляет файлы по времени
Когда вы передаете это на
tail -n1
Правильно выбирает последнюю запись, самый последний файл
Проблема в том, что он может совпадать или не совпадать с вашим шаблоном файла
Конечно, ваша последняя команда просто не получает никакого ввода от предыдущих. и поэтому он работает просто так, как должен, и перечисляет все файлы
find /home/test -maxdepth 1 -name "file_test_hadoop*" -printf '%f\n'
Чтобы решить эту проблему, я бы сначала начал с ls
и grep
, чтобы соответствовать правильному шаблону, то есть
ls -tr | grep "file_test_hadoop" > File_List.txt
Это создаст файл со списком и самым последним файлом в самом низу,
tail -n1 File_List.txt
Таким образом, ваш код будетHADOOP_NAME="$(tail -n1 File_List.txt)"