Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从目录和所有子目录移动文件_Linux_Shell - Fatal编程技术网

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
部分。