Удаление файлов с удаленного компьютера

Псевдонимы предназначены для использования ядром Linux, но не могут использоваться в исходной конфигурации дерева устройств (DTS ).

Между тем, метки могут использоваться в ваших файлах DTS для последующего расширения или изменения узла.

напр. У вас может быть собственный файл DTS, например:

#include "imx6qdl.dtsi"

&gpio2 {
   [your modifications here]
}

Обратите внимание, что это относится к меткеgpio2, а не к псевдониму.

Ср.https://elinux.org/Device_Tree_Mysteries#Label_vs_aliases_node_property

0
01.05.2021, 12:48
3 ответа

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

У вас была бы такая же проблема без использования sshлокально:

$ rm /tmp/wont*match
rm: cannot remove '/tmp/wont*match': No such file or directory

Касательное обсуждение:

Некоторые оболочки, такие как оболочка zshпо умолчанию, рассматривают несовпадающий шаблон подстановки как ошибку, что означает, что он даже не запустит команду, если шаблон ничему не соответствует:

$ rm /tmp/wont*match
zsh: no matches found: /tmp/wont*match

Оболочку bashможно заставить работать таким же образом, используя опцию оболочки failglob. В следующем примере rmникогда не вызывается:

$ shopt -s failglob
$ rm /tmp/wont*match
bash: no match: /tmp/wont*match

Вы можете использовать это в своем вызове sshвот так:

ssh user@ip 'bash -O failglob -c "rm /home/files/*.csv"'

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

1
28.07.2021, 11:36

Из этого ответа должно работать следующее:

echo "rm /home/files/*.csv" | ssh user@ip sh

По крайней мере, у меня так (клиент :ubuntu 18.04, хост :ubuntu 20.04)

-1
28.07.2021, 11:36

Вы можете отключить rmс помощью его флага -f, который говорит ему не беспокоиться об удалении файлов, которые он не может найти

ssh user@ip 'rm -f home/files/*.csv'
1
28.07.2021, 11:36

Теги

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