Установить дату изменения всех файлов .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
если он еще не установлен.