проблема с grep

Синхронизация

Blurb:

Synching заменяет собственные службы синхронизации и облака с чем-то открытым, заслуживающим доверия и децентрализованным. Ваши данные являются вашими данными в одиночку, и вы должны выбрать, где он хранится, если он предоставляется третьим лицам и как он передается через Интернет.

Это приложение для синхронизации файлов, которое является

бесплатным & amp; open-source - в отличие от Dropbox / Resilio / AeroFS secure - вся связь зашифрована, узлы аутентифицируются с использованием децентрализованных сертификатов / P2P - нет центрального сервера, который может регистрировать события или сходить вниз, когда вам это меньше всего нужно, каждый компьютер является собственным сервером просто - вам не нужно запоминать IP-адреса или получать доменное имя, вы просто вводите идентификатор Syncthing компьютера, с которым хотите установить соединение, и Syncthing вычисляет детали портативной информации - работает в Windows, Linux (включая Ubuntu Touch) , Mac, BSD, Solaris; есть приложения для Android и iOS.

Установка:

Официальное приложение Syncthing можно установить на Ubuntu следующим образом:

curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
echo "deb https://apt.syncthing.net/ syncthing release" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing syncthing-inotify

Чтобы запустить его для запуска при запуске, немедленно запустите его:

sudo systemctl enable syncthing@$USER.service
sudo systemctl start syncthing@$USER.service

Теперь вы можете открыть и добавить общие папки или другие компьютеры, которые вы хотите поделиться. (Примечание: если у вас несколько пользователей, другие пользователи получат разные номера портов, проверьте элемент /

в ~/.config/syncthing.config.xml, где хранится адрес в веб-gui.)

[!d26 ]

Существует также приложение GTK для тех, кто предпочитает более традиционное чувство: https://github.com/syncthing/syncthing-gtk#syncthing-gtk

1
задан 11 December 2014 в 10:12

1 ответ

@ Ответ Cremefraiche прав, потому что это связано с шаблоном. Однако его решение, похоже, не работает. Поскольку подстановочный символ оболочки * * соответствует всем файлам и папкам (кроме файлов точек), bash заканчивает отправку имен всех файлов и папок в текущем каталоге в качестве аргументов в grep. Так как невозможно «прочитать в» каталоге (подобно тому, как вы не можете cat в каталоге), вы должны исключить каталоги. Лучший способ сделать это - использовать инструмент find.

grep -l prac $(find . -maxdepth 1 -type f)

Это будет поиск всех обычных файлов (-type f) в каталоге. Если вы хотите сделать рекурсивный поиск таким же образом, просто удалите параметр -maxdepth. Обратите внимание, что это не будет работать для файлов с пробелами в их именах ... все еще работает над версией для этого.

0
ответ дан 24 May 2018 в 01:06
  • 1
    Мне было любопытно, почему мне нужно только набирать grep -l prac * в unix-окне моей школы, и все работает отлично. Что делает команду другой на моей машине? – user120161 11 December 2014 в 10:08
  • 2
    Если вы имеете в виду реальный Unix, то возможно, что это связано с какой-то разницей между GNU (grep в Ubuntu является GNU grep) и чистой версией POSIX, возможно. Но я не знаю ответа. – Chuck R 11 December 2014 в 12:02

Другие вопросы по тегам:

Похожие вопросы: