Вам нужно удалить .
После Найти
, как это означает, что сначала ищет ваш текущий каталог, а затем все, что находится в $ ScriptPath
.
-121--229970-
Bash-завершение
(который доступен в Cygwin, Debian, Ubuntu и, без сомнения, многие другие распределения) поддерживает SCP
Auto-завершение, до тех пор, пока оболочка Может получить доступ к требуемому серверу без подсказки (он использует SSH
в пакетном режиме, см. Ручной страницу SSH_CONFIG (5)
.
Самый простой способ включить это использовать SSH-Agent
. Вероятно, это включено по умолчанию вашей рабочей средой; Просто попробуйте
ssh-add
, чтобы добавить ключ по умолчанию на текущий запущенный агент (если есть). Если агент не работает, вы можете начать один, запустив
eval $(ssh-agent)
после того, как ваша клавиша будет известна агенту, вы сможете автоматически завершить SCP
команды, включающие серверы, которые вы можете получить доступ к ключу.
Я почти уверен ZSH
также поддерживает SCP
автоматическое завершение с одинаковыми оговорками; Необходимая поддержка находится в ZSH-Common
пакет в Debian. Он должен быть включен в вашем .zshrc
, хотя и с чем-то вроде
autoload -U compinit && compinit
(который загружает все поддерживаемые завершения).
Вы делаете свою жизнь более сложными, чем необходимо; -)
Если команда Subshell (выражение внутри вашего $ ()
) уже содержит список файлов имени файлов и «целевая команда» (RM -RF в вашем случае) уже принимает список имена файлов, почему бы не просто использовать
git status --porcelain| sed 's/^??//g' | xargs rm -rf
или, если вы хотите практиковать «для цикла» в Bash, вам не нужны Xargs:
for f in $(git status --porcelain| sed 's/^??//g') ; do
rm -rf $f
done
BTW .. , Вдвойне проверяйте ваши команды «RM -RF» (добавляя «эхо» перед «RM -RF»), прежде чем выполнять их, случаются глупые ошибки, и вы будете сожалеть об этом !!