Рейтинг:0

Как автоматизировать задание по перемещению последнего файла с последовательным именем файла

флаг bw

У меня есть файлы в каталоге, все они являются частью структуры последовательного именования. Я хочу автоматизировать задание, в котором я могу найти последний файл в этой последовательности и скопировать его в другой каталог.

Например. в /tmp/directory23 есть имена файлов:

CEN_01 [Дата изменения 31.05.2021]
CEN_02 [Дата изменения 06.07.2021]
CEN_03 [дата изменения: 14.06.2021]
CEN_04 [Дата изменения 21.06.2021]
CEN_05 [Дата изменения 28.06.2021]
CEN_06 [Дата изменения 07.05.2021]

Я хочу автоматизировать задание, в котором я нахожу последний измененный файл CEN_06 и копирую его в другой каталог.

Кто-нибудь может мне помочь?

FedKad avatar
флаг cn
Посмотрите на `man ls`. Последовательность команд `last_file=$(ls -t | head -n1)` назначит имя файла, которое вам нужно, в переменную оболочки.
Рейтинг:1
флаг lb

В вашем вопросе две части, поэтому я рассмотрю их отдельно. Я также не знаю, насколько вам комфортно работать с Linux, поэтому, пожалуйста, скажите мне, не слишком ли размыты эти рекомендации.

  • найдите последний измененный файл CEN_06 и скопируйте файл в другой каталог : вы должны быть в состоянии сделать это, используя вывод лс-lt, а затем получить первый результат. После некоторого поиска, похоже, работает следующее: лс-т | голова -n1 (изменить: спасибо @FedonKadifeli за эту команду). Чтобы скопировать файл, ср Команда - это то, что вы ищете.
  • Я хочу автоматизировать работу : один из способов автоматизировать работу в Linux — использовать crontabs. Вы должны иметь возможность делать с ними то, что хотите. Я рекомендую вам прочитать человека на эту тему человек 5 кронтаб. Вы в основном вставляете запишите команды, которые вы хотите запустить, а затем crontab будет автоматизировать их для вас с заданными интервалами.
FedKad avatar
флаг cn
Почему вы используете эту очень длинную последовательность команд, в то время как простая `ls -t | head -n1` может легко справиться с этой задачей?
флаг uz
Jos
@FedonKadifeli Даже лучше, потому что команда Мало имеет тенденцию печатать дополнительный пробел в начале имени файла.
флаг hr
... или используйте `zsh`, где вам не нужно полагаться на хрупкий анализ вывода ls и вместо этого можно использовать квалифицированный глобус оболочки, такой как `CEN_*(om[1])`
Malo Maisonneuve avatar
флаг lb
@FedonKadifeli Спасибо! Это намного лучше. Я обновлю свою слишком длинную команду :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.