Как предотвратить сортировку вывода `ls`?

Переадресация X11 - это только переадресация окон , порожденных в текущем сеансе. Поскольку рабочий стол не является окном, его невозможно переслать таким образом. Чтобы получить удаленный доступ к рабочему столу, необходимо использовать что-то вроде VNC.

-121--184609-

Попробуйте в/etc/apache2 my listen.conf: Слушайте 80 Слушайте 443

Также проверьте, использует ли другое приложение порт 443, попробуйте освободить этот порт и повторите попытку!

-121--98802-

Вы можете просто добавить его в конец file2.txt , выполнив

ls -a | grep text1 >> file2.txt

Или если вы хотите, чтобы он был в другом файле

ls -a | grep text1 > output.txt
cat file2.txt >> output.txt

Если вы хотите stderr вместо stdout

ls -a | grep text1 2>> output.txt

Обратите внимание, что это, вероятно, не поместит ничего в ваш файл, так как ls -a вряд ли будет выводить что-либо

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

mkfifo pipe1
cat pipe1 | next program &
ls -a | grep text1 >> pipe1
cat file2.txt >> pipe1
4
03.09.2018, 22:32
4 ответа

После упоминания findя обнаружил, что он может принимать более 1 пути в качестве аргумента пути. Так что это просто:

 find /opt/foo/lib.jar /opt/bar/lib.jar -prune 2> /dev/null
1
27.01.2020, 20:48

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

myls() {
  for arg do
    ls -d -- "$arg"
  done
}

Со ссылкой на ответ Стефана в Как использовать такие аргументы, как $1 $2... в цикле for? для синтаксиса for arg do.

1
27.01.2020, 20:48

В zshдля сокращения списка файлов до существующих можно использовать квалификатор (N)glob, добавляемый к каждому элементу списка:

files=(/opt/foo/lib.jar /opt/bar/lib.jar)
that_exist=($^files(N))

(($#that_exist > 0 )) && print -rl -- $that_exist

Обратите внимание, что, в отличие от ls, он может сказать, существует ли файл или нет, даже если у вас нет поиска доступа к его родительскому каталогу (до тех пор, пока у вас есть доступ для чтения ), так как он ищет соответствующие записи в каталоге, не пытаясь получить доступ к файлу.

См. также:

that_exist_after_symlink_resolution=($^files(N-^@))

Который выбирает файлы, которые не являются(^)символической ссылкой(@)после разрешения символической ссылки(-). Эквивалентно использованию ls -Ld.

0
27.01.2020, 20:48

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

При стандартной оболочке это лучше всего делать в цикле.

for pathname in /the/first/path /the/second/path /some/other/path
do
    if [ -e "$pathname" ]; then
        printf 'Path "%s" exists\n' "$pathname"
    else
        printf 'Path "%s" does not exist\n' "$pathname"
    fi
done
0
27.01.2020, 20:48

Теги

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