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

Posted

技术标签:

【中文标题】使用 osx 终端从外部硬盘驱动器中提取具有特定名称的子文件夹。【英文标题】:extracting subfolders with specific name from external hard drive using osx terminal. 【发布时间】:2013-03-25 00:17:37 【问题描述】:

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

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

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

使用 osx Terminal 解决这个问题的最直接、最安全的方法是什么?

【问题讨论】:

【参考方案1】:

我认为您的问题过于简单化了。但如果我理解正确,这应该对你有用:

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

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

【讨论】:

以上是关于使用 osx 终端从外部硬盘驱动器中提取具有特定名称的子文件夹。的主要内容,如果未能解决你的问题,请参考以下文章

mac终端命令大全全全全全全全全全

bat删除文件夹下,特定名以外的文件和文件夹

mac

硬盘驱动器和 Android Studio

在 XP 和 Windows 7 上的外部硬盘驱动器上运行 xampp

Mac-terminal常用命令