Linux 将以数字结尾的文件从etc复制到test1目录
我是linux新手,作为练习者,我需要将以数字结尾的“etc”文件从主目录复制到test1目录 (用一个命令)。 我试过了,但没用Linux 将以数字结尾的文件从etc复制到test1目录,linux,cp,Linux,Cp,我是linux新手,作为练习者,我需要将以数字结尾的“etc”文件从主目录复制到test1目录 (用一个命令)。 我试过了,但没用 find /etc -type f -iname "*[3-9]" -exec cp {} ../test1/ \; 这适用于以数字结尾的主目录文件 mv `ls . |grep -Eo "^.*[0-9]$"` your-directory 假设在当前目录中有一些文件,如ofjweifhwef9或KFIOFEH8(以数
find /etc -type f -iname "*[3-9]" -exec cp {} ../test1/ \;
这适用于以数字结尾的
主目录文件
mv `ls . |grep -Eo "^.*[0-9]$"` your-directory
假设在当前目录中有一些文件,如ofjweifhwef9或KFIOFEH8(以数字结尾的文件)
因此,ls
将列出它们
此grep表达式“^.[0-9]$”`将仅查找以数字结尾的文件(因为在您的主目录系统中不允许有这样的文件“/etc/somefile123”)
然后,mv将这些文件移动到您的目录中
注意:-如果grep找不到以数字结尾的文件,您当然会看到一个错误,因为mv需要2个操作数,但由于没有操作数,所以会出现错误。
mv: missing destination file operand after './your-directory'
这可能是因为<代码> /ETC < /COD>是您正在使用的系统中的一个链接,而<>代码>查找< /C>在最后添加一个额外的<代码> /< /代码>时,它似乎不认为是一个路径。请尝试以下方法:
find /etc/ -type f -iname "*[3-9]" -exec cp {} ../test1/ \;
注意/etc/
而不是/etc
。我在Mac电脑上也有同样的行为,/etc是指向另一个目录的链接
当然,还要确保在/etc/
目录树下有以数字结尾的文件。我的mac电脑里没有。运行时,您应该会得到一些文件:
find /etc/ -type f -iname "*[3-9]"
如果没有,则没有任何文件可复制。您也可以尝试:find/etc/
查看目录树下的所有文件
最后,如果只想复制/etc/
目录中的文件,而不是/etc/
下目录树中匹配的所有文件,则可能需要添加选项:-depth 1
。“etc文件”是什么意思?/etc/
中的文件?那为什么是你的主目录?你需要考虑子问题吗?我的解决方案有帮助吗?