Apian 大佬有话说 :
Linux命令之mv的一个标准写法疑问
现在需要把目录ABC下所有文件移动到ABC/BAK,就是ABC的子目录BAK里面
mv /AB/* /ABC/BAK/
其实吧,最终效果也是可以的,但是肯定会报错
mv: cannot move **** to a subdirectory of itself,****
忽略了就行了,但是有个疑问就是标准写法是啥?
mv /ab/!(bak)????
今天突然用到,因为以前也是这么用的,结果是一样的,看看大佬们怎么用的:lol
xcy1020 大佬有话说 :
AB跟ABC有啥关系
dvd 大佬有话说 :
最后面加个*星号就可以了
cz8384 大佬有话说 :
本帖最后由 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中
zxxx 大佬有话说 :
root@server:~/parent# tree
.
├── a
│ ├── aa
│ └── a.txt
├── b.txt
└── c
3 directories, 2 files
root@server:~/parent# mv !(c) c
root@server:~/parent# tree
.
└── c
├── a
│ ├── aa
│ └── a.txt
└── b.txt
3 directories, 2 files
mv !(c) c
dvd 大佬有话说 :
我去,把 abc 又写成ab
你这样肯定报错的,mv是不分目录或文件的,你加个排除选项就不会报错了