Клиент с открытым исходным кодом для Google Drive существует: Grive.
На данный момент заявление рассматривается экспериментальное, и оно испытывает недостаток в полной синхронизации, но оно может загрузить и уже загрузить новые или измененные файлы (таким образом, можно получить доступ файлам офлайн). Что это не может сделать, все же: ожидайте изменений и автоматически синхронизируйте файлы или удалите файлы (когда файл удален локально, проигнорировано и когда это удалено удаленно, это повторно загружается, если это существует локально).
Источники и двоичные файлы доступны на GitHub. Третье лицо, webupd8, обеспечило PPA для Ubuntu.
Обратите внимание, что от этого проекта официально отказываются с сентября 2018.
Perl был бы излишеством здесь.
find . -maxdepth 1 -mindepth 1 | wc -l
(лучше используйте grep -c /
вместо wc -l
в случае, если некоторые имена файлов имеют символы новой строки в них).
Или с GNU ls
:
ls -A | wc -l
С zsh
:
f=(*(D))
echo $#f
Удалить тот:
... | tail -n +2 | wc -l
Или:
n=$(... | wc -l); echo "$(($n - 1))"
С жемчугом можно использовать -n
или -p
флаг:
... | perl -lpe '--$_'
Выше этого --$_
выражение оценено и содержание $_
переменная распечатана для каждой строки входа.
Существует причина, почему Вы получаете неправильный ответ. В этом случае я ожидаю, что Вы хотите считать записи каталога и не видеть сам каталог, перечисленный, как представлен единственной точечной строкой, которая является последней строкой вывода от находки.
Решение состояло бы в том, чтобы скрыть записи, которые не должны считаться из "туалета-l", примера
find . -depth -maxdepth 1 | grep -v "^\.$" | wc -l
Так как grep может считать строки, можно использовать это для сохранения потребности запустить дополнительный исполняемый файл, пример
find . -depth -maxdepth 1 | grep -vc "^\.$"
Так как количество найденных объектов не изменяется на основе того, пересекаете ли Вы глубину сначала или нет, можно устранить ту опцию, дав Вам
find . -maxdepth 1 | grep -vc "^\.$"
Я соглашаюсь с другими ответами, жемчуг является излишеством для того, что Вы, кажется, ищете. Тем не менее, конечно, существуют законные причины передачи переменной удара к жемчугу. Используйте экспорт и переменную среды perl вдоль этих строк:
# i=$(find . -d -maxdepth 1 | wc -l) ; export i=$i ; perl -le 'print "Removing one from $ENV{i} for ".($ENV{i}-=1)'; unset i
Для числового решения от оболочки:
# i=$(find . -d -maxdepth 1 | wc -l) ; echo i=$((i-1))