Возможно, в автономном режиме вы запустили службу vsftpd. И вам просто нужно убить процесс vsftpd, не нужно менять файл конфигурации.
Если вы переименовываете только один файл, нет необходимости перебирать все позиционные параметры, однако, если вы перебираете все позиционные параметры, вы должны использовать:
for f in "$@"; do
$@
когда двойные кавычки позволят вам иметь параметры, которые содержат пробелы, не подвергаясь разбиению на слова, и, как правило, более надежны по нескольким причинам.
В вашем скрипте mv common.txt corporate.txt
переименует файл в соответствии с параметрами (, если файл common.txt
существует в том же каталоге, что и скрипт ), но вы не выполняете проверку, чтобы убедиться, что он был переименован. Лично я бы указал полный путь к файлу и, возможно, использовал бы его в качестве учебного опыта для нескольких немного ненужных дополнений :
И некоторые необходимые дополнения:
Используя все это, вы можете создать скрипт вида:
#!/bin/sh
file=/path/to/common.txt
path=$(dirname "$file")
if mv "$file" "${path}/corporate.txt"; then
printf '%s\n' "${file}: renamed successfully" >&2
else
printf '%s\n' "Failed to move: $file" >&2
fi