我是先建了一个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等一堆东西被移到异次元去了???
现在是否还有办法恢复!!!
|  |      1loveminds OP 另外查了下还有一条在家目录不小心手滑敲上的mv /usr/* 不知道有没影响,分区表还有备份(我备份的是整个sda的mbr) | 
|  |      2ming2050      2015-07-22 06:42:41 +08:00 via Android 为妹子顶一个 | 
|  |      3loveminds OP 终于找到了,全跑/usr/uwsgi_temp里去了 | 
|  |      4ming2050      2015-07-22 07:33:47 +08:00 via Android 话说你起的挺早 | 
|  |      5canky      2015-07-22 08:07:13 +08:00 via iPhone 妹子好评啊 | 
|  |      6DearTanker      2015-07-22 08:21:21 +08:00  1 曾经我给楼主的免费煮机捐赠过,那时穷,才捐了¥50好像,掩面~~~ | 
|  |      7YORYOR      2015-07-22 08:56:50 +08:00 妹子好评! | 
|  |      8mcfog      2015-07-22 09:00:55 +08:00 这个故事告诉我们,跨分区的mv和rm是一路货色,嗯嗯 | 
|  |      9frozenshadow      2015-07-22 09:01:11 +08:00 PL妹子好评~ | 
|      10inmyfree      2015-07-22 09:02:45 +08:00 妹子女神起的好早啊.... | 
|  |      12mN71eOOprFyMsnPx      2015-07-22 09:12:18 +08:00 多年的经验告诉我,不要用mv,不要用mv。 硬盘读取不了数据的时候,复制数据库的时候,用mv只要有意外。就会死的难看。 最好是rsync。 | 
|  |      13Radeon      2015-07-22 09:14:25 +08:00 大批量文件操作用GUI文件管理器会更安全 | 
|  |      16nantmpeter      2015-07-22 10:15:33 +08:00 但mv的效率比cp高太多了。。。谨慎使用就好 | 
|  |      17tt88050643      2015-07-22 10:22:52 +08:00 楼主怎么操作的?RHEL会显示missing destination file operand after ...... | 
|  |      18frankzeng      2015-07-22 10:44:13 +08:00 做事留一手,日后好恢复,运维工程师的惨痛教训。 | 
|      19wudaown      2015-07-22 11:00:11 +08:00 via iPhone 围观妹子 | 
|  |      20zhicheng      2015-07-22 11:11:10 +08:00 跟大家讲一下 Unix 系统,在可能会改变系统的情况下,不要在参数里使用 * 。 mv -f /usr/* /fakeusr/ 这个命令里的 * 并不是 mv 来处理的,是由 shell 把这个参数改成 mv -f /usr/bin /usr/lib /usr/share /fakeuser 这个才是最终执行的命令,所以在出错的时候,可能会很陌名其妙。cp 命令一样。 其实正确的姿势不加 * 也一样能实现效果。。。 Unix 的这个缺陷一定要记住。 底下是广告 欢迎大家使用 TextArea.com 来记录自己学到的新东西〜 | 
|      21lonelinsky      2015-07-22 11:14:02 +08:00 没看明白: mv -f /usr/* /fakeusr/ 这句的时候是在什么目录下执行的?这个是有目标的,所以不是这句闯的货吧。 另外查了下还有一条在家目录不小心手滑敲上的mv /usr/* : 所以其实是这句闯的祸?执行的时候上面一句的mv -f /usr/* /fakeusr 已经执行过了? @loveminds | 
|  |      22Draplater      2015-07-22 11:47:19 +08:00  4 @lonelinsky 你敲一个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。 | 
|  |      23mN71eOOprFyMsnPx      2015-07-22 11:59:00 +08:00 | 
|  |      249hills      2015-07-22 12:31:12 +08:00 via iPhone 不是mv的锅 | 
|      25aivier      2015-07-22 13:06:18 +08:00 以前用优盘复制文件有过类似的事,剪切途中断开了,源文件没了,优盘里的也不完整 | 
|  |      26msg7086      2015-07-22 13:15:17 +08:00 mv的时候一定一定要确保自己打了目标。否则通配符的最后一个对象就成目标了。 比如你两个文件,doc1 doc2,然后打个mv doc*,就是doc1覆盖doc2了。 | 
|  |      27dbfox      2015-07-22 13:42:54 +08:00 不得不来说下,头像上那女生好漂亮,是个温柔善良的女孩。 | 
|      28lonelinsky      2015-07-22 14:00:00 +08:00 @Draplater see,thx | 
|  |      30timothyye      2015-07-22 14:46:35 +08:00 看来凡事还是cp靠谱,留条后路总没错…… | 
|  |      32loveminds OP @xiaobu  @ekeyme @timothyye 这提供商只划了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 | 
|      33snnn      2015-07-22 14:58:49 +08:00 妹子好评 动手能力真强! | 
|  |      37foxni      2015-07-22 16:40:15 +08:00 妹纸好评,顺便吐槽下,很多时候明知道mv的不老实,但是还是深深的依恋着它~ | 
|  |      38ljcarsenal      2015-07-22 17:10:12 +08:00 LunaDream Technology 是个啥东西 | 
|  |      39zent00      2015-07-22 17:23:00 +08:00 via iPhone 看楼主的附言,感觉楼主还是没有完全了解问题的原因。问题的症结在于你输入的那个 * ,而不是 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 目录按字母排序是不是最后一个目录。 | 
|  |      40Lilacs      2015-07-22 17:23:53 +08:00 冲妹子头像回一个 | 
|  |      41sunever      2015-07-22 17:57:14 +08:00 怎么一半都是看妹子的…… | 
|  |      42xseven007      2015-07-22 18:15:25 +08:00 mv之前我都谨慎的先快照一下,,, | 
|  |      44jdlau      2015-07-22 19:30:47 +08:00 妹子,以后有问题可以直接来问我。 | 
|  |      45arslion      2015-07-22 19:42:37 +08:00 好久没有离会技术的妹子这么近了,才不到50楼ಥ_ಥ | 
|  |      46ldb1992      2015-07-22 22:57:01 +08:00 看见头像就进来了额 | 
|  |      47nino789pzw      2015-07-22 23:40:50 +08:00 曾经cd错路径 然后手抖rm 了所有文件。。 | 
|  |      48ehs2013      2015-07-22 23:43:46 +08:00 一般带 * 的命令我都会手动展开一下(Tab) | 
|      50Navee      2015-07-23 10:22:54 +08:00 围观妹子 , 学习技术! | 
|  |      51codeyung      2015-07-23 10:43:08 +08:00 up 1 | 
|      52aprikyblue      2015-07-23 12:50:37 +08:00 学到了 | 
|  |      53jack139      2015-07-23 13:45:45 +08:00 看头像进来的 | 
|  |      54deathscythe      2015-07-23 15:22:57 +08:00 看看妹子进来了~ | 
|  |      55fxxkgw      2015-07-23 18:27:35 +08:00 进来看妹子。。 | 
|      58dalaomj      2015-08-03 19:14:19 +08:00 | 
|  |      60newborn      2015-09-08 17:13:32 +08:00 建议 rsync 命令移动整个目录树并保留权限、文件链接等。 | 
|      61bandianxing      2015-09-28 15:34:51 +08:00 事情应该是这样的: mv /usr/* ,这条命令,把 usr 下面的其他目录 都弄到 /usr/uwsgi_temp 去了 后面的 mv -f /usr/* /fakeusr/ ,只不过是移动了 /usr/uwsgi_temp 。 所以,问题是出在第一步。 |