Переименование файлов с указанием времени последнего изменения имени файла

Переименование файлов с указанием времени последнего изменения имени файла

Я пытаюсь переименовать файл с помощью mvкоманды и хотел бы добавить дату последнего изменения этого файла (в формате ГГГГММДД) к имени файла и переместить его в другую папку. Я получил текущую системную дату следующим образом:

mv /home/user/Desktop/a.txt "/home/user/Desktop/testfolder/$(date +%Y%m%d)-a.txt"

Я использовал другие комбинации, dateно не получил. Мне нужно знать, возможно ли сделать это напрямую через командную строку или мне нужно создать скрипт.

решение1

Вы можете попробовать эту команду:

mv /dir_path/example.txt /new_dir_path/$(date +%Y-%m-%d -r example.txt)example.txt

решение2

Вероятно, проще всего все исправить с помощью небольшого файла скрипта.

-о-

Я думаю, вы хотите использовать дату изменения вместо текущей даты, см. вывод от

ls -l a.txt

или

ls -l --time-style=long-iso a.txt

решение3

Спасибо, я понял! Только одна деталь. Если вы используете команду из пути, где исходный файл отсутствует, вам нужно использовать это:

mv /dir_path/example.txt /new_dir_path/$(date +%Y-%m-%d -r /dir_path/example.txt)example.txt

Связанный контент