Пакетне перейменування фотографій за датою створення в Mac OS X за допомогою Bash не працює з пробілами


1

Я шукав рішення щодо того, як групувати перейменування фотографій на Mac OS X. Я знайшов багато рішень, але більшість з них не працюють, якщо у файлі є пробіл, або якщо я хочу поставити пробіл у назві файлу.

Наприклад, я знайшов цей сценарій:

for i in *.jpg; do newname=$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- $i); mv -- $i $newname.jpg; done

Сценарій працює до тих пір, поки я не встав пробіл у кінцевому імені файлу (я хочу пробіл у імені файлу, тому що я перейменував свої файли з пробілами протягом останніх 3 років у Windows). І він також порушується, якщо сам файл має пробіл. Тож якщо у мене є фотографія під назвою "Hello World.jpg", вона не буде оброблена.

Будь-хто має рішення для цього, будь ласка? Це, як правило, не вимагає додаткового програмного забезпечення (я просто хочу мати можливість копіювати / вставляти цей сценарій щоразу, коли перемикаю машини).

Дякую!

Відповіді:


3

У своїх замінниках потрібно використовувати лапки:

for i in *.jpg; do newname="$(stat -t %Y-%m-%d_%H.%M.%S -f %Sm -- "$i")"; mv -- "$i" "$newname.jpg"; done

Це повинні бути подвійні лапки, щоб дозволити змінні та $()розширення.


Чомусь це видаляє будь-який файл, у якому є пробіл. Не дуже впевнений, чому.
xtrimsky

Якщо ви додасте echoперед mv, ви можете бачити, якими будуть команди.
AFH

Вам потрібні лапки $iв $(... $i). (Це працює, незважаючи на зовнішні лапки.) Ви, як правило, ставите подвійні лапки навколо будь-якої змінної підстановки, якщо у вас немає конкретної причини цього не робити.
jpaugh

Так, ви маєте рацію: я помилково припустив, що зовнішні цитати охоплюють обидва. Я оновив свою відповідь. Меа Кульпа.
AFH

@xtrimsky - Я оновив свою відповідь додатковим набором цитат у відповідь на коментар @ jphaugh. Вибачте за пропущення раніше - я тестував на Linux, але statваріанти, здається, різні, і я пропустив внутрішні цитати.
АФХ

0

Зазвичай його буде достатньо замінити $iна "$i".


Це скоріше коментар, а не відповідь.
C0deDaedalus

@KamilMaciorowski Це 5-е визначення прикметника: thefreedictionary.com/normally
Джерард Х. Піл

Справедливо. Скасовано Downvote.
Каміль Маціоровський

@KamilMaciorowski Повага, ти можеш пожартувати!
Джерард Х. Піл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.