上周,我在北京的一家咖啡馆,点了一杯拿铁,花了3 8 元。
那天的天气不错,阳光透过窗户洒在桌子上,我看着电脑屏幕上的代码,突然想到,如果我能把这段代码优化一下,运行效率能提高1 0%。
算了,先喝杯咖啡休息一下。
你看着办,如果你有兴趣,我们可以一起讨论一下代码优化的问题。

百度知道页面加载了多个JavaScript文件。

Linux移动文件命令mv详细说明

哎,你问我mv命令啊?上周有个客户问我为啥他移动文件老是提示"target is not a directory",差点没把我急跳起来。
这玩意儿看着简单,但用不好确实坑人。

先说最基础的,你写的这个语法mv [选项] 源 目标完全正确。
我去年在杭州某公司的服务器上,就因为忘记加-i选项,不小心把几百个日志文件全给覆盖了,那叫一个惨啊。
所以移动前,我习惯先ls确认下目标位置。

你列的几个例子都靠谱。
比如移动目录mv my_project_folder /var/www/,这没问题。
但重命名目录时,得注意Linux是区分大小写的,别像我上次一样,把Project_Folder误操作成project_folder,结果啥都没动。

选项这块,-i(交互模式)和-f(强制覆盖)是最常用的。
我在上海某数据中心维护系统时,发现有个脚本用了-f,结果把用户家目录里的重要文件给删了,最后花了半天时间才恢复。
所以现在写脚本,我宁愿用-i卡一下,也不直接用-f。
还有-u(更新模式),特别适合同步备份,比如mv -u /data/src/ /data/dest/,只会把源里比目标新的文件或目标不存在的文件给搬过去。

安全操作这块,你说的三种策略都靠谱。
我最烦的是批量操作时,通配符用多了容易出错。
有次我写了个mv .log /logs/,结果忘了当前目录下有个叫config.log的文件是只读的,结果移动失败。
后来改用find . -name ".log" -exec mv {} /logs/ \;才搞定。

跨文件系统移动是另一大坑。
你说的"复制+删除"没错,我之前在西安帮朋友迁移系统盘时,就因为源盘和目标盘不在同一块物理设备上,移动一个5 00G的电影文件,慢得像狗屎,最后直接用的rsync。
而且跨文件系统移动后,文件权限会变,这点得注意。
还有符号链接,默认是移动链接本身,不是解引用。
你要移动链接指向的真实文件,得先用readlink -f解析路径,比如mv "$(readlink -f my_symlink)" /new/path/。

总的来说,mv是Linux系统里最基础也最容易被忽视的工具之一。
用好了能省事,用不好...呵呵,就像我上次差点把整个项目代码库移动到回收站一样。
反正你看着办吧,多测试几次准没错。