Переименовать + переместить вложенные файлы в сценарии Bash

La forma más fácil es usar netctlen arch. En primer lugar, debe:

cp /etc/netctl/examples/bridge /etc/netctl

Configure sus esclavos deseados en la línea que dice:

BindsToInterfaces=(eth0 eth1 tap0)

Lo último que desea es habilitar netctl@.servicio como este:

systemctl enable netctl@bridge.service

Tenga en cuenta :que el nombre después de @ debe coincidir con su nombre de archivo en /etc/netctl

1
07.06.2019, 18:57
2 ответа

Если вам не нужно имя пользователя в конечном имени файла,

for i in /path/to/users/*/userinfo.csv ; do
  mv $i /path/to/users/userinfo-$RANDOM.csv
done

сделать трюк для вашего использования -case ?

Если нет, вы также можете использовать подстановку параметров bash:

for i in /path/to/users/*/userinfo.csv ; do
  mv $i /path/to/users/${i//\/-}
done

Это заменит все /на -в переменной$i(путь+имя файла ). Таким образом, вы получите, например,:

/path/to/users/path-to-users-john-userinfo.csv
/path/to/users/path-to-users-jack-userinfo.csv
1
27.01.2020, 23:30
for i in $(ls -1 /path/to/users/); do
    mv /path/to/users/$i/*/userinfo.csv /path/to/users/userinfo_$i.csv
done

Это будет работать при условии, что местоположение userinfo.csvравно /path/to/users/$user/userinfo.csv. В тех случаях, когда /path/to/users/содержит папки без userinfo.csvили только файлы, mvничего не делает и поэтому может быть проигнорирован.

В этом случае $iбудет содержать имя каждого элемента в /path/to/users/, будь то файл или папка.

1
27.01.2020, 23:30

Теги

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