Назад | Перейти на главную страницу

Переименовать файл (расширение) на Mac без изменения даты создания?

У меня есть несколько файлов .JPG, и я хочу, чтобы они были файлами .jpg, но каждый предлагаемый сценарий переименования использует "mv", а на странице руководства (на Mountain Lion) для mv говорится, что он выполняет копирование и удаление, что объясняет, почему, когда я запускаю сценарий все даты «создания / изменения / и т. д.» изменяются на текущую дату. Я не хочу, чтобы это случилось. Что я могу сделать?

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

$ stat -f "%m%t%Sm %N" *
1347657595  Sep 14 23:19:55 2012 1.JPG
1347715529  Sep 15 15:25:29 2012 2.JPG
1156277764  Aug 22 22:16:04 2006 3.JPG
1347657554  Sep 14 23:19:14 2012 4.JPG
1347657554  Sep 14 23:19:14 2012 5.JPG
1347741772  Sep 15 22:42:52 2012 6.JPG

Сделайте для них новый каталог

$ mkdir renamed

Пройдите через них петлей

$ for i in *.JPG ; do cp -p $i renamed/`echo $i|sed 's/JPG$/jpg/g'` ; rm $i ; done

Теперь они находятся в newdir и удалены из текущего каталога. Но мы хотим их вернуть - хотя использовать mv не можем.

$ for i in renamed/* ; do cp -p $i . ; rm $i ; done
$ rm -rf renamed/

Тадаа

$ stat -f "%m%t%Sm %N" *
1347657595  Sep 14 23:19:55 2012 1.jpg
1347715529  Sep 15 15:25:29 2012 2.jpg
1156277764  Aug 22 22:16:04 2006 3.jpg
1347657554  Sep 14 23:19:14 2012 4.jpg
1347657554  Sep 14 23:19:14 2012 5.jpg
1347741772  Sep 15 22:42:52 2012 6.jpg

Использовать touch -r чтобы установить метку времени одного файла для другого.

cp oldfile newfile
touch -r oldfile newfile

Который touch говорит "Установите отметку времени newfile к отметке времени oldfile. "

Вот сообщение в блоге с более подробной информацией о touch и как это использовать.

Однако все это копирование + касание не обязательно. Вы говорите, что в руководстве написано, что «mv говорит, что копирует и удаляет», но это неверно. Я думаю, вы могли неправильно это прочитать. Вы должны уметь использовать mv переименовать файл. Вы можете столкнуться с проблемой, потому что в файловой системе Mac HFS + имена файлов нечувствительны к регистру, поэтому «foo.jpg» - это то же самое, что «FOO.JPG».