Недавно я побежал rm -rf
, а не rm -rf /
, но ничего не произошло. Я просто получаю такой результат:
Я был напуган, потому что я боюсь, что он мог удалить некоторые файлы, но это не так. Просто убедитесь, что это могло удалить какие-либо файлы из моего каталога?
rm
), Но для многих / большинства других команд, например, для всех команд обработки текста на основе конвейера, простое их использование часто является самым простым / простым из возможных. Вместе с изучением справочной страницы, очевидно.Ответы:
Нет,
rm -rf
не удалит файлы, потому что вы не указали аргумент команды.источник
-f
, это не ошибка запускать его без аргументов.rm -r
будет жаловаться на «отсутствующий операнд», но-f
подавляет это, а также подавляет ошибки для файлов, которые не существуют. (Так, например, сценарий можно использоватьrm -rf /foo/bar/*
для очистки каталога, который уже может быть пустым, без необходимости2>/dev/null
Со страницы руководства :
Это означает, что вы можете использовать его для одновременного удаления списка файлов, например, с
К счастью, все, что вы сделали, это пропустили пустой список файлов, поэтому он ничего не удалил. Кроме того, что говорит @SolarMike : если вы не знаете, что делает команда, не запускайте ее . MacOS предназначен для «скрытия» всех опасных (но потенциально мощных) операций Unix от конечного пользователя.
источник
-r
флаг не нужен, если вы не удаляете каталоги рекурсивно. Если это просто файлы,rm
достаточно - для того-f
, чтобы принудительно сделать это, он не спрашивает вас «вы уверены» для каждого файла.rm -rf
. Если бы они запустили 'rm -r' без указанных файлов / каталогов, они бы получили это сообщение об использовании:JanNash ~ $ usage: rm [-f | -i] [-dPRrvW] file ... unlink file
/
, просто пропустит несуществующий файлxyz*
(который просто не расширится из-за отсутствия соответствия).a
иb
для меня - даже без указания-f
.echo rm -f a b c*
Вместо этого выполните те же команды, чтобы увидеть реальное поведение.Для начинающего дилера / Linux / Unix:
rm
сам по себе ничего не делает, потому что ты не сказал, от чего избавляться.man rm
Можно объяснить большую часть этого, если вы это понимаете.-r
означает рекурсивный, как в «включить все в подпапках»-f
означает силу, не проси меня подтвердить режимrm -rf
(НЕ ДЕЛАЙТЕ ЭТОГО)/
сказал бы, что удалите все в/
(корневой папке) без проверки (в последних версиях macOS SIP не позволит вам удалить сам macOS, но многие другие вещи будут удалены)rm [some file name]
просто удалил этот файл.rm -rf /home/myuser/books
удалит все вmyuser
«Sbooks
папку, а также папку.источник
rm -rf / --no-preserve-root
стрелять в ногу.find / -delete
должен «работать» (т.е. фактически удалять вещи, поэтому не запускайте его.)Нет, но если вы хотите удалить Вот пример:
После запуска терминала (в папке / Applications / Utilities) введите cd ~ / Desktop, чтобы перейти в каталог Desktop. Если у вас есть файл с именем MyFile.rtf, который вы никогда больше не хотели видеть, вы можете запустить эту команду:
Когда вы нажмете Return, файл будет испорчен! Уйдет, тост, история. Вы не можете получить это обратно.
источник