繁体   English   中英

在终端中的多个目录中复制文件

[英]Copying files in multiple directories in terminal

我不熟悉使用命令行进行操作,因此如果这个问题显而易见,请原谅我。 我想从一个包含许多子目录的目录中移动某种类型(.aiff)的所有文件。 文件结构如下所示:

directory
- subdir1
  -- sound.aiff 
  -- other.txt
- subdir2
  -- sound2.aiff
  -- other2.txt

我尝试使用类似cp -R /Users/me/directory/*.aiff /Users/me/newdirectory但出现“无此文件或目录”错误。 我不知道如何指定要复制到子目录中的文件必须是.aiff文件。

尝试这个:

cp -R /Users/me/directory/*/*.aiff /Users/me/newdirectory

但是可能缺少目标/Users/me/newdirectory

您可以通过执行以下操作来验证这一点:

file /Users/me/newdirectory

如果该目录不存在,则会显示如下错误:

Users/me/newdirectory: cannot open `/Users/me/newdirectory' (No such file or directory)

使用以下命令创建目录:

mkdir /Users/me/newdirectory

接下来,尝试再次复制文件,如果要移动它们,请使用mv而不是cp

另一种方法是使用命令find ,例如:

find /Users/me/directory -type f -iname "*.aiff" -exec mv {} /Users/me/newdirectory \;

在此示例中,命令find将仅在目录/Users/me/directory/搜索文件-type f ,并且*.aiff结尾(不区分大小写),对于每个找到的文件,它将执行命令mv exec mv {} /Users/me/newdirectory {}是一个占位符。

在移动之前,您可以通过找到所需的类型来测试命令:

find . -iname "*.aiff"

这将在命令执行目录中搜索文件,注意. 而不是/Users/me/directory/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM