Установить дату изменения всех файлов .DS_Store в папке и всех ее подпапках через терминал?

Я использую macOS Sierra. Мне бы очень хотелось узнать, как использовать терминал для установки даты изменения всех файлов .DS_Store в определенной иерархии на заданную дату.

На данный момент я знаю, что могу это сделать:

      sudo touch -t 200001010101 ./.DS_Store

Это установит дату изменения файла .DS_Store в текущем каталоге на 01.01.2000 01:01. Но мне нужно найти способ сделать это не только для текущего каталога, но и для всех подпапок в этом каталоге.

Я серьезно надеюсь, что есть простое решение этой проблемы. Мне до смерти надоело, что дата изменения различных папок в моей системе меняется просто из-за изменений просмотра, которые я делаю в Finder при их просмотре!

Этот вопрос касается меньшей части более крупной задачи, которую я пытаюсь выполнить. Теперь у меня почти все работает, за исключением части сценария, которая, кажется, работает только тогда, когда я запускаю его напрямую из терминала. Вот ссылка на основную проблему на случай, если кто-нибудь, читающий это, сможет помочь: Сервис для выполнения серии команд в выбранных папках для устранения проблем с файлами .DS_Store в Finder.

1 ответ

Если вы используетеbashвы можете попробовать что-то вроде:

      sudo touch -t 200001010101 **/.DS_Store

Эта команда изменит временную метку.DS_Storeво всех подкаталогах

Более универсальный способ — использовать команду типа:

      find . -name .DS_Store -type -f -exec touch -t 200001010101 {} \;

PS Возможно, вам придется установить этоshopt -s dotglobесли он еще не установлен.

Другие вопросы по тегам