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

По-видимому, $ENV расширен до $HOME/.kshrc в

send "export OLD=10.10.10.10 ; export NEW=1.1.1.1 ; perl -i -pe 's/\Q$HOME/.kshrc{OLD}\E/$HOME/.kshrc{NEW}/' /etc/hosts\r

Вы могли

  1. попробуйте $OLD и $NEW в строке Perl,
  2. канава ожидает в пользу плоскости ssh: ssh root@12.219.102.43 -- sed -i s/$OLD/$NEW/ /etc/hosts

    С надлежащей установкой ключей Вам не нужен пароль также.

3
22.04.2014, 18:29
4 ответа

Несколько вещей, которые вы можете попробовать:

Попробуйте заполнить файл с помощью автозавершения вкладок. Например

rm .[TAB].

Переместите все остальные файлы из этого каталога в другое место, а затем удалите этот каталог. Это должно избавиться от файла.

Переместить все другие файлы и просто запустить (предполагая, что GNU [11915]find[11916]) это:

find . -тип f -delete

Удалить все файлы в директории, которые начинаются с точки:

rm -r .*.

Получите код файла и удалите его, используя это. [11921]ls -i

should[11924] should[11924] show you inode. В качестве альтернативы, запустите

find . -printf "%i %f\n".

После того, как вы получили код, попробуйте удалить, используя [11927]find[11928] again:

find . -inum XXX -delete

Попробуй этот сценарий на Perl. Измените имя [11931]dirname[11932] для каталога, содержащего файл, и запустите его из родительского каталога. Итак, если ваш файл [11933]~/foo/file[11934] запустите его в [11935]~/[11936] и измените [11937]dirname[11938] на [11939]foo[11940].

perl -e 'use File::Path qw(remove_tree); remove_tree("dirname")'.

4
27.01.2020, 21:16

Возможно, вы не сможете удалить его из-за символа CR (\r

). Вы можете попробовать следующее:

stty sane < /dev/whatever
stty intr ^c < /dev/whatever

И посмотреть, удалит ли он его.

.
1
27.01.2020, 21:16

Когда у меня были подобные проблемы, я мог удалять файлы по inode

первая колонка inode

Чтобы удалить его

0
27.01.2020, 21:16

Такие симптомы обычно связаны с невозможностью дать правильное имя файлу rm(1). Одно из решений - сделать что-то вроде:

(т.е. попросить удалить все файлы с именем *, но попросить каждый из них).

Чтобы узнать точное имя, может помочь ls -ba (дать C escapes для "странных" символов, перечислить все файлы). Есть и другие (GNU) ls-флаги, которые могут быть полезны

.
0
27.01.2020, 21:16

Теги

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