Как заставить `read` отображать весь ввод, кроме конечной строки в конце набора ?

Известной команды для этого нет, но, к счастью, интерпретаторы оболочки очень легко справляются с этой и подобными задачами. Например:

for i in /my/this/dir/*;do mv -vf "$i" "$i.$RANDOM";done

пройдётся по файлам в Вашей директории /my/this/dir и выполнит для этого команду mv (переименование), которая добавляет их имя со случайным числом от 0 до 32767. Например, если вы выполните это для каталога /sbin, он будет переименовывать файлы здесь так:

ifconfig -> ifconfig.4553
ip -> ip.12767
...

DON't DO IT IN /sbin, он убьет вашу систему! (Но это было бы очень смешно :-) )

Но будьте осторожны, если это не то, что вы хотите, это может быть труднее (еще одна строка, хе-хе), чтобы сделать это обратно. Таким образом, перед запуском этого скрипта, вы можете протестировать его с префиксом mv с помощью echo:

for i in /my/this/dir/*;do echo mv -vf "$i" "$i.$RANDOM";done

Этот второй oneline скрипт ничего не сделает, только он напечатает команды mv, которые он будет выполнять без echo.

2
28.01.2018, 11:56
0 ответов

Теги

Похожие вопросы