LINUX.ORG.RU

[bash] переименование файлов

 


0

1

всем привет. в общем мне нужно массово переименовать кучу файлов. старое название -> дата изменения/создания файла... думается что нужно что-то делать с выводом ls -la но там идет месяц на русском языке...как получить дату изменения файла?

newname = датаизменения файла $1
mv $1 $newname

подскажите волшебную тулзу....



Последнее исправление: dizaster (всего исправлений: 1)

ох нагуглилась утилита stat. сейчас нужно почитать man...

dizaster
() автор топика
Ответ на: комментарий от geekless

вообщем сделал так:

#!/bin/bash
newname=`stat -c %z $1`
mv $1 `echo ${newname:0:10}`

сперва тему создал, потом думать начал (

всем спасибо кто ответил.

dizaster
() автор топика
Ответ на: комментарий от dizaster

>паника по * скрипт не работает!!! нужно чтобы работал...
еще бы. в скрипте используешь $1 - а это первый аргумент.
значит либо нужно:
find /path -t file -exec /path/to/Y/shit.sh '{}' \;
или как верно заметили обрабатывать не $1, а $@

fr_butch
()
Ответ на: комментарий от hi_artem

У него нужно обработать файлы, переданные в вызове скрипта. Это делается циклом. А «$@» прекрасно справляется с пробелами.

geekless ★★
()
append_date () 
{ 
    for file in "$@" 
    do 
        mv $file{,`date -r $file +%F`} 
    done
}

можно вызывать

append_date *

у меня вставлено функцией в bashrc, можно всё что внутри фигурных скобок тупо в отдельный скрипт вкатить(вроде).

jeuta ★★★★
()
Ответ на: комментарий от AnDoR

>Назвается: найди 10 отличий.

Называется: учи матчасть.

Led ★★★☆☆
()
Ответ на: комментарий от jeuta

спасибо, очень помогли. напилил что-то похожее )

dizaster
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.