Linux 从目录和所有子目录移动文件
是否有命令列出目录和子目录中的所有文件?例如,当我清理我的Linux 从目录和所有子目录移动文件,linux,shell,Linux,Shell,是否有命令列出目录和子目录中的所有文件?例如,当我清理我的~/Download目录时,我希望将所有电影文件移动到特定目录 如果我尝试这样做: mv *.avi Directory 子目录中的avi文件将不会移动。有没有办法做到这一点?使用find命令,例如: find ~/Download -name \*.avi -exec mv "{}" Directory \; 您可以像这样使用find: find . -name '*.avi' -exec mv "{}" Directory \;
~/Download
目录时,我希望将所有电影文件移动到特定目录
如果我尝试这样做:
mv *.avi Directory
子目录中的avi文件将不会移动。有没有办法做到这一点?使用
find
命令,例如:
find ~/Download -name \*.avi -exec mv "{}" Directory \;
您可以像这样使用
find
:
find . -name '*.avi' -exec mv "{}" Directory \;
您应该在
~/Download
目录中运行此命令(或者用另一个源目录名替换点)。-exec
和\之间的字符串
将作为一个普通的shell命令对每个匹配的文件执行,文件名替换为{}
,这将列出所有avi文件,这很有用。但是有没有办法直接把它们转移到别的地方呢?谢谢@SolalAmouyal是的,我已经用您正在寻找的解决方案更新了答案。非常感谢!这就是我想要的嘿,已经有一段时间了,但是你能解释一下字符串“{}”和“\;”的含义吗?此外,“-exec”是否适用于每个命令?@SolalAmouyal,{}
将替换为当前文件的路径名(例如,在本例中为file1.avi、file2.avi等)和\
find命令需要一个分号(;
)来终止与-exec
参数一起使用的表达式,但是,由于分号用于分隔shell中的命令,因此必须对其进行转义,以避免shell默认处理此类字符。+1您的正确答案首先出现,但随后被接受的答案添加了mv
部分。