Ваша прямая ошибка исходит из неправильного интервала в пути, должна быть rm /home/whatever
без пробелов в пути, если у вас нет фактических пробелов в именах dir (в этом случае вам нужно будет указать или убежать должным образом)
О подавлении выхода. Перенаправление stdout здесь немного странно.
$ touch test.txt
$ rm test.txt > /dev/null 2>&1
^ interactive rm is actually asking if you really want to delete the file here, but not printing the message
Если вы просто хотите, чтобы не получать сообщения об ошибках, просто перенаправить поток ошибок (дескриптор файла 2) в/DEV/нуль
$ rm test.txt 2> /dev/null
или
$ rm test.txt 2>&-
Если вы хотите, чтобы не запрашивать do you really want to delete
сообщения типа, используйте знак силы -f
$ rm -f test.txt 2> /dev/null
или
$ rm -f test.txt 2>&-
Для удаления каталога вы либо хотите rmdir
, если он пустой или использовать рекурсивную -r
флаг, однако, это вытрет все,/дома/пользователя, так что вам действительно нужно быть осторожным ,
Если вы не работаете в режиме --verbose
, я не могу придумать ни одного случая, когда ему нужно закрыть stdout для команды rm
.
Кроме того, как Баш 4, если вы хотите, чтобы перенаправить как стандартный вывод и стандартный поток ошибок в том же месте, просто использовать rm whatever &> /dev/null
или что-то подобное
Что все эти пространства между ними с каждым слэш? – fedorqui
что вы пытаетесь сделать? Для удаления папки используйте 'rm -rf/home/user', но удаление папки пользователя, вероятно, является плохим. Чтобы удалить файл, выполните команду 'rm/home/use/file.txt' Обратите внимание на отсутствие пробелов. Чтобы поместить команду rm в скрипт, shebang должен быть '#!/Bin/bash', опять же, обратите внимание на отсутствие пробелов. –
Сообщение об ошибке не соответствует отображаемому вами коду. Пожалуйста, не перепечатывайте, используйте вырезать и вставлять. –