全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 602|回复: 10

Linux命令之mv的一个标准写法疑问

[复制链接]
发表于 2021-4-24 18:38:56 | 显示全部楼层 |阅读模式
本帖最后由 Apian 于 2021-4-24 19:12 编辑

现在需要把目录ABC下所有文件移动到ABC/BAK,就是ABC的子目录BAK里面
mv /ABC/* /ABC/BAK/
其实吧,最终效果也是可以的,但是肯定会报错
mv: cannot move **** to a subdirectory of itself,****
忽略了就行了,但是有个疑问就是标准写法是啥?
mv /abc/!(bak)  ????
今天突然用到,因为以前也是这么用的,结果是一样的,看看大佬们怎么用的
发表于 2021-4-24 18:51:24 | 显示全部楼层
  1. root@server:~/parent# tree
  2. .
  3. ├── a
  4. │   ├── aa
  5. │   └── a.txt
  6. ├── b.txt
  7. └── c

  8. 3 directories, 2 files

  9. root@server:~/parent# mv !(c) c

  10. root@server:~/parent# tree
  11. .
  12. └── c
  13.     ├── a
  14.     │   ├── aa
  15.     │   └── a.txt
  16.     └── b.txt

  17. 3 directories, 2 files
复制代码


mv !(c) c

点评

谢谢,看来我这种也算标准写法了。。。  发表于 2021-4-24 19:14
发表于 2021-4-24 18:43:36 来自手机 | 显示全部楼层
AB跟ABC有啥关系
发表于 2021-4-24 18:46:13 | 显示全部楼层
最后面加个*星号就可以了
发表于 2021-4-24 18:48:45 | 显示全部楼层
本帖最后由 cz8384 于 2021-4-24 18:49 编辑

cd abc
ls | grep -v bak | xargs mv -t bak

grep -v bak 匹配ls结果中除了bak所有的文件及文件夹

xargs mv -t bak 移动到bak中

点评

大佬代码多,听大佬的,不过mv /abc/!(bak)好像也没毛病,有这种写法  发表于 2021-4-24 19:16
发表于 2021-4-24 18:51:42 | 显示全部楼层
我去,把 abc 又写成ab

你这样肯定报错的,mv是不分目录或文件的,你加个排除选项就不会报错了

点评

手误手误。。。  发表于 2021-4-24 19:15
发表于 2021-4-24 18:59:50 | 显示全部楼层
是五楼那么写的 用!() 排除 不过不用加*
发表于 2021-4-24 19:25:10 来自手机 | 显示全部楼层
牛掰弯下腰
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-15 07:50 , Processed in 0.075996 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表