У меня много папок, у которых в именах папок оказалось слишком много empties
, и мне нужно удалить все empty
и оставить папки с $1.empty
Конечно, моя логика здесь есть недостатки, поскольку я не уверен, как получить имя файла new
. Я могу получить только то, что совпадает с регулярным выражением.
#!/bin/sh
for I in `cat filelist`;
do
# for renaming, use mv
NEWNAME = `$I.empty`
echo $NEWNAME
done
Цель состоит в том, чтобы заменить папки, которые имеют $ empty.empty
, то быть $.empty
. Папки, которые не содержат empty.empty
, должны быть оставлены в покое.
Используйте rename
:
rename 's/ empty\.empty$/.empty/' *empty.empty
Вы, возможно, должны были бы установить rename
:
sudo apt install rename
<час> Альтернатива с чистый bash
:
for d in *empty; do
mv -i "$d" "${d% empty*}.empty"
done