我是先建了一个fakeusr做中转
mount /dev/sda2 /fakeusr
然后直接mv -f /usr/* /fakeusr/
结果等我umount之后再重新
mount /dev/sda2 /usr
瞬间惊呆
ls -al /usr
total 28
drwxr-xr-x 4 root root 4096 Jul 22 05:47 .
dr-xr-xr-x. 23 root root 4096 Jul 22 06:03 ..
drwx------ 2 root root 16384 Jul 22 05:40 lost+found
drwx------. 17 nginx root 4096 Jul 22 05:47 uwsgi_temp
尼玛usr/local /usr/share等一堆东西被移到异次元去了???
现在是否还有办法恢复!!!
另外查了下还有一条在家目录不小心手滑敲上的mv /usr/*
不知道有没影响,分区表还有备份(我备份的是整个sda的mbr)
为妹子顶一个
终于找到了,全跑/usr/uwsgi_temp里去了
话说你起的挺早
妹子好评啊
曾经我给楼主的免费煮机捐赠过,那时穷,才捐了¥50好像,掩面~~~
妹子好评!
这个故事告诉我们,跨分区的mv和rm是一路货色,嗯嗯
PL妹子好评~
妹子女神起的好早啊....
其实也不是,只是如果mv没有目标,它就会耍流氓
多年的经验告诉我,不要用mv,不要用mv。
硬盘读取不了数据的时候,复制数据库的时候,用mv只要有意外。就会死的难看。
最好是rsync。
大批量文件操作用GUI文件管理器会更安全
mv毕竟速度快,rsync和cp不是什么时候磁盘空间都够这么搞
cp后 rm如何?
但mv的效率比cp高太多了。。。谨慎使用就好
楼主怎么操作的?RHEL会显示missing destination file operand after ......
做事留一手,日后好恢复,运维工程师的惨痛教训。
围观妹子
跟大家讲一下 Unix 系统,在可能会改变系统的情况下,不要在参数里使用 * 。
mv -f /usr/* /fakeusr/
这个命令里的 * 并不是 mv 来处理的,是由 shell 把这个参数改成
mv -f /usr/bin /usr/lib /usr/share /fakeuser
这个才是最终执行的命令,所以在出错的时候,可能会很陌名其妙。cp 命令一样。
其实正确的姿势不加 * 也一样能实现效果。。。
Unix 的这个缺陷一定要记住。
底下是广告
欢迎大家使用 TextArea.com 来记录自己学到的新东西〜
没看明白:
mv -f /usr/* /fakeusr/ 这句的时候是在什么目录下执行的?这个是有目标的,所以不是这句闯的货吧。
另外查了下还有一条在家目录不小心手滑敲上的mv /usr/* : 所以其实是这句闯的祸?执行的时候上面一句的mv -f /usr/* /fakeusr 已经执行过了?
@loveminds
你敲一个mv /usr/*,shell会自动展开为:
mv /usr/bin /usr/etc /usr/games /usr/include /usr/lib /usr/lib32 /usr/lib64 /usr/libexec /usr/local /usr/portage /usr/sbin /usr/share
所以东西都被移到了最后一个文件夹,即/usr/share。
mv因为出现意外的时候,数据没移动完,数据损坏只有傻眼了。
cp 也是可以,这样至少出现问题时,数据源还是完好的。
不是mv的锅
以前用优盘复制文件有过类似的事,剪切途中断开了,源文件没了,优盘里的也不完整
mv的时候一定一定要确保自己打了目标。否则通配符的最后一个对象就成目标了。
比如你两个文件,doc1 doc2,然后打个mv doc*,就是doc1覆盖doc2了。
不得不来说下,头像上那女生好漂亮,是个温柔善良的女孩。
see,thx
就是她。V2有人挖出过更多照片。
看来凡事还是cp靠谱,留条后路总没错……
那是我
这提供商只划了10G的sda而且还把其中4G用作swap
导致的后果就是根文件系统长期满掉,以至于最后连tmp和pid的空间都没有了
这是重新处理后的结果,swap放在home了
df -lhT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda1 ext4 5.8G 2.9G 2.7G 53% /
tmpfs tmpfs 946M 0 946M 0% /dev/shm
/dev/sdb1 ext4 49G 7.1G 38G 15% /home
/dev/sda2 ext4 3.9G 1.2G 2.5G 32% /usr/local
妹子好评
动手能力真强!
然并卵,不过你可以给个微信微博或者可以公开的项目,来没事用来养眼
也可以聊聊天
所以更多的照片在哪里?
妹纸好评,顺便吐槽下,很多时候明知道mv的不老实,但是还是深深的依恋着它~
LunaDream Technology 是个啥东西
看楼主的附言,感觉楼主还是没有完全了解问题的原因。问题的症结在于你输入的那个 * ,而不是 mv 命令,因为 Shell 把 * 拆开来解释了。举个例子:当前目录下有个 test 目录,而 test 下有三个子目录,分别为 a,b,c ,你试着执行 cp -R test/* ,然后去 test/c 下看看是不是多了些什么。
这个例子里你输入的 cp -R test/* 实际上等同于 cp -R test/a test/b test/c ,你没有指定目标目录,于是通配符 * 被拆开之后的 test/c 成了目标目录。为什么不是 test/a 也不是 test/b ,而是 test/c 成为目标目录?相信你肯定也知道,因为拆开之后的内容按字母顺序来排列了。你可以看看你操作的那台服务器上 /usr 目录下 uwsgi_temp 目录按字母排序是不是最后一个目录。
冲妹子头像回一个
怎么一半都是看妹子的……
mv之前我都谨慎的先快照一下,,,
涨见识了
妹子,以后有问题可以直接来问我。
好久没有离会技术的妹子这么近了,才不到50楼ಥ_ಥ
看见头像就进来了额
曾经cd错路径 然后手抖rm 了所有文件。。
一般带 * 的命令我都会手动展开一下(Tab)
好评。
围观妹子 , 学习技术!
up 1
学到了
看头像进来的
看看妹子进来了~
进来看妹子。。
磁盘已经爆了哪有空间给你快照,如果要整个备份到sdb,要多少时间
ssd做磁盘阵列,应该会很快
https://www.v2ex.com/member/gccvb
这里能看到。居然和丹麦首相并列。。 -_-!
不明觉厉,怎么和丹麦扯上了,这么漂亮的妹子,赶快建个网站,发些日常,吸引些屌丝赚点广告费
建议 rsync 命令移动整个目录树并保留权限、文件链接等。
事情应该是这样的:
mv /usr/* ,这条命令,把 usr 下面的其他目录 都弄到 /usr/uwsgi_temp 去了
后面的 mv -f /usr/* /fakeusr/ ,只不过是移动了 /usr/uwsgi_temp 。
所以,问题是出在第一步。