Существует нет mv
команда в интерактивном режиме sftp. Использовать rename
вместо этого.
Для изучения, какие команды доступны проверьте страницу справочника man sftp
или введите help
в sftp
.
Отличие в области и синтаксически очень тонко:
$ ./updater
эквивалент
$ /bin/bash ./updater
Он запускает скрипт (если он помечен как исполняемый и на файловой системе смонтирован с опцией exec
- последняя форма работает, даже если одно из этих условий не выполнено). Это означает, что он порождает новый экземпляр оболочки и подает содержимое сценария. Таким образом, любые псевдонимы, определенные в нем, ограничиваются длительностью интерпретирующей оболочки, которая находится только до конца сценария.
$ . updater
$ . ./updater
$ source updater
$ source ./updater
означает все то же самое и сообщает текущей оболочке выполнить содержимое этого файла, как если бы вы ввели его в командной строке. Это означает, что любые псевдонимы, функции, переменные среды, настройки опций оболочки и т.д. будут доступны в оболочке впоследствии.
Вот почему иногда вы видите файлы shell init ( ~/.bashrc
в случае Баша), которые выглядят так:
#!/bin/bash
for n in ~/etc/bash/*; do
. $n
done
, где ~/etc/bash
может выглядеть как:
~/etc/bash/
|-- bash.10.env
|-- bash.20.aliases
`-- bash.30.func
(названия вполне себе понятны). При добавлении некоторых файлов в такой каталог init необходимо только . ~/.bashrc
. Для чего можно иметь псевдоним, конечно. Это также может быть расширено - например, с помощью специализированной инициализации в зависимости от имени хоста (или фазы Луны с помощью pom
из bsg-игр).
Одно большое предостережение для этих настроек: убедитесь, что файлы init «повторно входят» в том смысле, что не имеет значения, сколько раз Вы отправляете их в одну оболочку - например, переменные, которые Вы хотите сохранить, должны быть определены условно:
VAR=${VAR:-"value"}
вместо безусловного:
VAR="value"
-121--58021- Как насчет perl?
perl -pe 's/^(.+?)(?=;)/$1 . " "x(41-length($1))/e' file
LDX LEVEL
LDA INITD015,X ; INITIAL ACTIVE SPRITES
STA $D015
STA SAVED015
LDA INITXPOS,X ; INITIAL HERO X COORDINATE
STA XPOS
LDA INITYPOS,X ; INITIAL HERO Y COORDINATE
STA YPOS
LDA INITXPOSMUM,X ; INITIAL MUMMY X COORDINATE
STA XPOSMUM
LDA LEVEL
BNE NOTLOADENDELEMENTS
LDA FLAGLOSELIFE
BNE NOTLOADENDELEMENTS
; LDX #<BIGELEMENTSFILE ; LOW BYTE
; LDY #>BIGELEMENTSFILE ; HI BYTE
; JSR LOADFILE_EXOMIZER
awk
awk '
(p=index(substr($0,2), ";")) > 0 {
printf "%-40s%s\n", substr($0,1,p), substr($0,p)
next
}
{print}
' file
-121--167125- Option 1: Разрешения файлов внутри каталога не имеют значения, блокировки на уровне каталога обычно достаточно, поэтому достаточно chmod 2750/path-to-dir
.
Вариант 2: Использовать только ACL ( chmod 2750/path-to-dir
не требуется, но сделать вещи приятнее для людей, не привыкших к ACL).
setfacl -R -b -d -m o::--- -m u::rwX -m g::rX .
обратите внимание, что можно установить g:: rwX
для достижения 770/660