Объясните, пожалуйста, простой способ переименовать много файлов. Например, приписать расширение .gif всем файлам в данной директории (или всем файлам без расширения).
> Объясните, пожалуйста...
объясняю :
1. ls -1 <<< создаешь сипсок файлов (каждая строка это имя файла)
2. | <<< перенаправляешь его
3. while read fname <<< на цикл считывания строк
4. mv "$fname" <<< внутри цикла делаешь что надо
p.s.: "$fname" <<< кавычки необходимы для пробелов и прочих спец символов в именах файлов.
вообще * лучше не пользоваться (cp *, mv *), т.к. из * получается список, а при очень большом количестве файлов такой список часто не прокатывает (тот же cp, mv скажет о превышенном количестве аргументов).
Просто синтаксис такой у find -exec, чтоб знал где команда заканчивается. :)
man find:
EXAMPLES
.....
find . -type f -exec file '{}' \;
Runs 'file' on every file in or below the current directory. Notice that the braces are enclosed
in single quote marks to protect them from interpretation as shell script punctuation. The
semicolon is similarly protected by the use of a backslash, though ';' could have been used in
that case also.