Как показывает ваш вывод ifconfig
:
lo Link encap:Local Loopback
LOOPBACK MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
... похоже, вам не хватает IP-адресов, принадлежащих lo
. lo
обычно должен иметь два IP-адреса: 127.0.0.1/8 и :: 1/128. Сценарии запуска системы обычно гарантируют, что это так, и ваша система будет считаться неисправной, если она этого не сделает.
Вы можете временно исправить это с помощью следующих команд:
ip link set lo up
ip addr add 127.0.0.1/8 dev lo
ip addr add ::1/128 dev lo
, но это не сохранит его для следующего раза. В следующий раз вы захотите исправить то, что не так. Я не знаю, как это сделать с вашим дистрибутивом, но если бы это был дистрибутив, подобный Debian, вы могли бы убедиться, что это присутствует в / etc / network / interfaces
:
auto lo
iface lo inet loopback
Вы можете использовать mktemp
:
$ mktemp foobarXXXXXX
foobarAU7TyS
$ mktemp foobarXXXXXX
foobardDqS61
$ mktemp foobarXXXXXX
foobarioCZw2
Возможно, в вашем примере это будет примерно так:
mv "$fname" "$(mktemp "${fname%.zip}"XXXXXX.zip)"
Но вам следует провести некоторое тестирование. Странные вещи происходят с zip-файлами, которые заканчиваются на 'X' ...;) (требуется суффикс / разделитель, отличный от X, который я для удобства оставил в этом примере).
Хорошая особенность mktemp
заключается в том, что он гарантирует, независимо от того, насколько маловероятна вероятность, что имя файла еще не существует. Конечно, в приведенном выше примере бесполезно, что в первую очередь не проверяется наличие ошибок ...
Или вы используете встроенный механизм - backup
mv
.
(Зависит от того, почему вы это делаете в первую очередь.)
Это будет работать:
for fname in *.zip
do
CODE="$(tr -dc '[:alnum:]' </dev/urandom | head -c 6)"
CODESTRING="_cod_${CODE}"
YOUR mv CODE
done
Мы делаем все возможное, чтобы избежать преобразования
в существующий файл, а также для обеспечения отказоустойчивости создание нового имени файла, которого раньше действительно не существовало, и возможность владеть им самим.
orig_umask=`umask`
umask 077; # take away perms from others + group
orig_state=$(set +o | awk '$3 == "noclobber"')
set -C; # cannot overwrite now
for fname in ./*.zip
do
while :
do
CODE=$(head /dev/urandom | tr -cd 'a-zA-Z0-9_' | dd bs=1 count=6 2>/dev/null)
CODESTRING="code_${CODE}"
new_name=${fname%".zip"}_${CODESTRING}.zip
{ > $new_name; } &>/dev/null && break
done
mv -f "$fname" "$new_name"
done
# recover state
eval "$orig_state"
umask "$orig_umask"