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

В моем каталоге медиацентра все измененные времена моих папок как-то не являются желаемой датой.

Как я могу изменить все измененные времена основных папок на измененное время новейшего медиа-файла внутри каждой папки?

например:

cd /tmp mkdir test cd test mkdir d1 mkdir d2 touch d1/text1.txt touch d1/movie1.mov touch d2/text2.txt touch d2/movie2.mov touch notthis.file 

теперь я попробовал:

 ls -td *| head -n 1 

но это дает:

 notthis.file 

3 Solutions collect form web for “Как я могу изменить дату, измененную для папки, на последний измененный файл внутри?”

С zsh :

 cd that-dir && touch -r *(D.om[1]) . 

Если вы хотите также рассмотреть файлы в подкаталогах:

 touch -r **/*(D.om[1]) . 

И если вы хотите сделать это для каждого каталога:

 for d (**/*(D/)) touch -r $d/*(D.om[1]) -- $d 

Используя ls(1) чтобы заказать каталог по времени модификации, head(1) чтобы получить первый из файлов, и touch(1) чтобы изменить время модификации вашего целевого каталога, это довольно легко.

Обычно нецелесообразно анализировать вывод ls поскольку он редко необходим и легко поддается специальным символам, однако в этом случае я не могу придумать другой инструмент, который так же легко даст вам файл с последней меткой времени в каталог.

 touch_dir() { dir="$1" touch --reference="$(ls -td "${dir}"/* | head -n 1)" "${dir}" } 

Запустите это с аргументом, который является каталогом, и он должен установить время модификации каталога на последнее время модификации любого файла в каталоге.

Он не сработает, если в каталоге нет файлов (легко протестировать несколько способов), или если последнее имя файла имеет встроенную новую строку – head получит только часть перед новой строкой.

Чтобы обновить многие каталоги, просто запустите его в цикле.

Вы можете установить your_dir метку your_dir каталога для своего последнего измененного файла с этим чудовищем:

 touch -t `ls -ltr --time-style='+%Y%m%d%H%M.%S your_dir' | grep '^-' | tail -1 | awk '{print $6}'` your_dir 

Неясно, что вы подразумеваете под «основными папками», поэтому я не включил рекурсию.

  • Как победить GRUB2 в подчинении?
  • Как проверить, какой гипервизор используется с моей виртуальной машины?
  • Grub 2 - попытка загрузки в «загрузчик Windows» загружает меня обратно в grub
  • Почему Rhythmbox не может воспроизводить большинство файлов из моего mt-daap-ресурса?
  • Почему в Ubuntu не работает звуковой сигнал?
  • Grub2 потерян в новой установке Linux-дистрибутива
  • Как определить, какое событие отключает липкие клавиши?
  • восстановление данных после частичного измельчения
  • Ошибка аутентификации с помощью postfix и sasl с использованием sasldb
  • Как установить ОС Microsoft Windows, если у вас уже установлен Ubuntu 12.04
  • Почему «echo $ 0» дает разные результаты для двух разных терминалов?
  • Interesting Posts

    Можно загрузить все пакеты из «groupinstall», а затем запустить (yum –nogpgcheck localinstall *. Rpm)?

    Как получить самые последние записи DNS из недавно обновленного домена?

    Дважды щелкните Linux Bash Script и отлаживайте команды паузы

    Установка Linux на внешний жесткий диск и многозадачность с помощью Windows 7/8

    Как повлиять на назначение подчиненных UID / GID при создании учетных записей пользователей?

    Безопасно ли подключать мой USB-накопитель к / home / partimag для клонирования раздела

    Не удалось получить psk из сети с помощью wpa_cli

    Сканирование сетевых устройств

    Как удалить все \ r \ n из файла, но сохраните \ n

    Нужно ли запускать SSH-демона, если я использую Chef локально?

    Объединить строки с совпадающим первым столбцом

    Каковы некоторые способы обновления символических ссылок, когда они указывают на переменную?

    Как нормализовать нерегулярные значения данных

    Vim – Cursorline включается после сохранения удаленного файла

    Безопасно ли перемещать разделы?

    Linux и Unix - лучшая ОС в мире.