Почему find возвращает. но нет..?

С одинарными кавычками команда работает:

ssh yourserver 'echo "Start.";CYCLE=$(cat /your/file); echo $CYCLE; echo "End."'

Также

ssh yourserver  <<'EOF'
echo "Start."
CYCLE="$(cat /your/file)"
echo $CYCLE
echo "End."
EOF

1
11.10.2021, 11:37
1 ответ

Find не должен выводить записи .и .., обнаруженные во время поиска в дереве каталогов . Ни в коем случае они не будут полезны. Однако, если он начинается с ., он печатает это.

The find utility shall recursively descend the directory hierarchy from each file specified by path, [...] all pathnames for other files encountered in the hierarchy shall consist of the concatenation of the current path operand, a if the current path operand did not end in one, and the filename relative to the path operand. The relative portion shall contain no dot or dot-dot components, no trailing <slash> characters, and only single <slash> characters between pathname components.

С помощью find./fooможно найти имя пути, подобное ./foo/bar/hello.txt, где ./fooбудет текущим операндом пути, /добавлено в середине, а bar/hello.txtбудет относительной частью.

find /home/user/dir ! -name "*.txt"должно печатать как минимум /home/user/dir, так как dirне соответствует *.txt. (Разумеется, он также должен печатать любые другие файлы с именами, не заканчивающимися на.txt). Если бы вместо этого вы сделали find /home/user/dir -name "*.txt"без отрицания, /home/user/dirне было бы напечатано, так как оно не соответствует условию.

5
11.10.2021, 11:52

Теги

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