Что надлежащий путь состоит в том, чтобы автоматизировать команду SSH/local?

Причина позади ls -a показ . и .. не имеет никакого отношения к утилите и всему, чтобы сделать с Unix (и Linux) файловые системы.

Все - файл.

Каталоги являются действительно файлами, которые содержат списки файлов. "В" любом данном каталоге, потому что это - перспектива пользователя, если не точно перспектива файловой системы, существует два специальных файла.

  • Первое, названный ., ссылка на текущий рабочий каталог. Это используется людьми почти каждый день, когда они делают вещи как выполнение команды в текущем каталоге через ./scriptname.
  • Второе, названный .. ссылка на родительский каталог CWDs. Как ., .. используется каждый день всеми, кто требует изменить каталоги на родительский каталог через cd ...

Системный вызов getdents(), который является рабочей лошадью на системной стороне ls, просто перечисляет все файлы в каталоге. (помните: все - файл. устройства, каталоги, сокеты, и т.д. таким образом, они все обнаруживаются),

Со служебной стороны вещей, автора (авторов) ls команда предоставила много возможностей и комбинаций опций, которые позволяют нам отфильтровывать определенные части, или типы информации, например, @Gilles прокомментировал выше этого ls -A покажет весь dotfile, за исключениями . и ... Все эти опции могли быть рассмотрены, выполнив последующую обработку возможности. Они влияют на то, что отображено ls, не, чем найден ls.

Нет действительно никакой причины явно перечислить . и .., по умолчанию, так как все мы знаем, что они там, что они для, и когда использовать их.

Может определенно быть полезно смочь иметь некоторую опцию видеть их, хотя при поиске и устранении неисправностей странных проблем полномочий.

Проверьте страницу справочника для getdents()¹. Это объясняет немного больше о том, как это работает и включает исходный код для примера программы, с которым можно скомпилировать gcc -Wall, который перечисляет все файлы в каталоге.


1. По крайней мере, страница справочника Ubuntu для getdents() кажется, имеет пример кода.

0
12.10.2011, 04:45
4 ответа

После рассматривания возможностей я решил изменить команду (удалил && exit) и оставленный его, как для простоты.

0
28.01.2020, 02:29

Вы можете писать сценарий чего-то, что использование Ожидает, но это может быть по сложному для чего-то этим простым. Я использовал его в прошлом, чтобы войти в переключатель удаленного питания и циклически повторить данный порт, таким образом, я полагаю, что Вы могли, вероятно, использовать его для этого приложения также.

2
28.01.2020, 02:29
  • 1
    , который можно использовать, ожидает делать что-либо, что требует повторяемый, последовательный, взаимодействие. –  Tim Kennedy 12.10.2011, 17:53
  • 2
    Очень верный. Я просто думал, что это может быть легче использовать псевдоним удара или что-то простое как этот. Я - большой поклонник, ожидают теперь хотя; сделанный моей намного легче жизнью. –  sbtkd85 12.10.2011, 18:10

Поместите его в Make-файл.

sync:
↹ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod && exit'

Затем выполните его.

$ make sync

Отметьте это на самом деле символ табуляции. См. документацию своего редактора для того, как ввести ее (но CtrlVTab может работать).

1
28.01.2020, 02:29

Вот два дополнительных решения, оба предполагают, что Вы используете оболочку удара. Первое должно создать функцию для выполнения задачи, место, которые функционируют в ~/.bashrc файл:

function bugsync() {
    ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'
}

Второе должно создать псевдоним:

alias bugsync="ssh bugserver -f 'cd /etc/repos/gitrepo && git pull origin prod'"

Обратите внимание, что Вы не должны указывать часть' выхода '&& команды.

0
28.01.2020, 02:29

Теги

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