Linux 移动除指定文件夹外的所有文件
我正在尝试使用脚本将当前目录中的所有内容移动到当前目录中的新文件夹Linux 移动除指定文件夹外的所有文件,linux,shell,mv,Linux,Shell,Mv,我正在尝试使用脚本将当前目录中的所有内容移动到当前目录中的新文件夹 mv\(.svn\\\$line\\\\\\\..\)$line 错误是 mv:无法统计'!(.svn | RSSIFXServicesCommon |.|...):没有这样的文件或目录 我将命令回显到输出,如果我自己复制并执行命令,它就会工作 我尝试使用扩展正则表达式(shopt-s extglob)启用extglob,无需引用您的正则表达式: mkdir -p /tmp/t/4 touch /tmp/t/{1,2,3} sh
mv\(.svn\\\$line\\\\\\\..\)$line
错误是
mv:无法统计'!(.svn | RSSIFXServicesCommon |.|...):没有这样的文件或目录
我将命令回显到输出,如果我自己复制并执行命令,它就会工作
我尝试使用扩展正则表达式(shopt-s extglob
)启用extglob,无需引用您的正则表达式:
mkdir -p /tmp/t/4
touch /tmp/t/{1,2,3}
shopt -s extglob
cd /tmp/t
mv !(4|.|..) 4
如果我把它放在一个shell脚本中,它也可以工作。可能重复的
mv:cannot stat'!(4 |.|...):没有这样的文件或目录
那是哪个shell?它是bash,但它运行在一个明W64上,听起来不像我在这里看到的bash版本。如果extglob不起作用,bash应该解释“!”作为历史扩展,您应该会收到一条消息(除非您的bash甚至禁用了历史扩展?)。如果extglob未设置,它会像您所说的那样将“!”解释为上一个事件。但是我已经设置了extglob,当我运行命令mv!(4 |.|…)4
它给出了以下错误mv:cannot stat'!(4 |.|...):没有此类文件或目录