Легче:
touch file`ls file* | wc -l`.ext
Вы получите:
$ ls file*
file0.ext file1.ext file2.ext file3.ext file4.ext file5.ext file6.ext
У меня похожая проблема, и я наткнулся на этот вопрос без ответа. Вот мое решение.
Команда rclone mount
по умолчанию остается запущенной на переднем плане, пока удаленное устройство подключено, выводя различные сообщения на стандартный вывод. Это отличается, скажем, от sshfs
, который запрашивает учетные данные на переднем плане и завершает работу. Чтобы vifm
завершил процесс монтирования и принял новый пользовательский ввод, rclone mount
необходимо как-то демонизировать. Это можно сделать с помощью флага --daemon
, однако в этом случае получается, что vifm
переходит в только что созданную папку и отображает ее содержимое до завершения процесса монтирования. Итак, вы получите то, что кажется пустой папкой. НажатиеCTRL-L
(несколько раз )обновляет список файлов и отображает правильное содержимое. Тем не менее, это немного раздражает.
Другой возможный подход заключается в написании скрипта-оболочки, который демонизирует rclone mount
и ожидает завершения процесса монтирования. Ожидание может быть достигнуто, например, с помощью inotifywait
или просто с помощью sleep
.
Скрипт-обертка может выглядеть примерно так:
#!/usr/bin/env bash
dest=$1; shift
nohup rclone mount $* "$dest" &> /tmp/rclone_gdrive.log &
inotifywait -me open "$(dirname "$dest")" | while read line; do
echo "$line" | grep -q "$(basename "$dest")" && break
done
# or sleep 1
(Я недостаточно проверял, так что будьте осторожны )а в vifmrc
вы можете поместить следующее:
" Rclone mount
filetype *.drive
\ {Mount google drive with rclone}
\ FUSE_MOUNT2|<your wrapper script name> %DESTINATION_DIR %PARAM
Обратите внимание, что %DESTINATION_DIR
стоит перед %PARAMS
здесь (, в отличие от примера в вопросе ), потому что это то, что ожидает предоставленный скрипт-оболочка.
К сожалению,Я не знаю ответа на более общую часть вашего вопроса.