5 ms·
Will it still start recursing and deleting most of the stuff owned by your user? That's arguably more important than the system files!
by usmannk 5y ago
Will it still start recursing and deleting most of the stuff owned by your user? That's arguably more important than the system files!
- wongarsu 5y agoNo: # rm -rf / rm: it is dangerous to operate recursively on '/' rm: use --no-preserve-root to override this failsafe There's still lots of ways to screw up a rm, like "rm -rf /*" or deleting your entire home directory, but a space after the initial / was apparently common enough that they eventually put a big failsafe for that in the GNU version.
- radlad 5y agoI don't think OSX uses GNU tools unless you install them through brew.
- initplus 5y agoMore serious than users fatfingering the command were scripts with code like rm -rf /$MYVAR If you don't set $MYVAR and don't set bash to error on unset variables you are in for trouble.
- OJFord 5y agoI don't recall which one it is (u for unset perhaps?) but I cover this by starting every (bash, E and pipefail are not POSIX) script with `set -eEuo pipefail`. All should be the default IMO, I don't understand - other than back-compat - why you wouldn't want them.
- SAI_Peregrinus 5y agoIt's -u. You can also prevent this by never using $VAR, and instead always using ${VAR:?} to exit with error if VAR is unset (or use one of the other options to provide a default).
- andrewmackrodt 5y agoA lesson I learnt several years ago when I discovered that mktemp behaves differently on macOS versus the GNU version in Linux. From that day onward I always make sure the first line of my bash scripts contains at least "set -e".
- girvo 5y agomacOS doesn't use the GNU versions, though.