使用osx终端从外部硬盘驱动器中提取具有特定名称的子文件夹。

时间:2013-04-03 11:01:17

标签: macos terminal directory

我有一个位于外部硬盘上的大型数据集。我只需要提取一组特定的数据/子文件夹。驱动器上的每个文件夹都包含名为X和Y的子文件夹。只有名为X和Y的子文件夹才对我感兴趣。我最终想要的是一个硬盘驱动器(或一个单独的上游文件夹),只包含子文件夹X和Y.

到目前为止,我使用了两种方法。 1)将所有感兴趣的子文件夹手动重定位到单独的文件夹。 2)删除我不感兴趣的所有文件夹。

我遇到的问题是,无法手动将所有子文件夹X和Y移动到一个文件中,因为它们具有相同的文件夹名称。使用find删除除感兴趣的文件夹之外的所有文件夹。 -name -exec rm -rf {} \;对于像我这样的外行来说,这似乎是一种危险的方法。

使用 osx终端解决此问题的最直接,最危险的方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为你过分简化了你的问题。但如果我理解正确,这应该适合你:

mkdir $HOME/Desktop/interestingdata
tar cvCf /Volumes/datasetHD/datadir - */X1 */X2 | tar xCf $HOME/Desktop/interestingdata -

这将提取,例如, /Volumes/datasetHD/datadir/(anydirname)/X1进入$HOME/Desktop/interestingdata/(samedirname)/X1,而/Volumes/datasetHD/datadir/(anydirname)/Y1等做同样的事情。

(它还会包含X2以及您添加到该命令行的任何其他Xy,形式为*/Xy

希望有所帮助。如果没有,我们可以通过一些更具体的信息做得更好。