选择不同文件夹中的文件

在nautilus中是否可以从文件夹中选择一堆文件,然后转到另一个文件夹并在选择中添加更多文件?

不,不幸的是,这是不可能的。

巴夫曼开始

这是一项正在进行的工作,答案分为两个职位。

bafman( B orn A gain F ile Man ager)是在过去的长周末(2017年4月14日至17日)开发的。 它仍在进行中,但它将满足跨多个子目录选择文件的要求。

这在您想要在不执行完整系统备份的情况下复制项目中的文件的情况下非常理想。 还有其他应用程序,例如标记您在几十个不同目录中修改的每个系统配置文件。

我发布这个WIP,希望在完成bash编码时产生兴趣并收集其他function的建议。 是的,所有这些都是用bash编写的(可能是许多人的震惊)并依赖于所有GUI的YAD(Yet Another Dialog)。

初始数据创建

当您第一次调用bafman时,此屏幕会在几分钟后出现:

巴夫曼1

这是主屏幕。 您可以单击任何列标题以按升序降序排序。 您可以抓住列分隔线并移动它以调整列宽。

使用以下命令从> 20,000(bafman限制)减少目录列表:

tree --noreport -danifI "src*|dev|lib|media|mnt|proc|root|run|sys|tmp|tmpfs|var|usr" / > "$bafmanTemp" 

如果您是程序员,您可能希望查看所有“src *”目录,并将其从代码中删除。

请注意,我们的显示中文件计数和大小均为零。 这可以在下一节中解决。

Update Dirs按钮 – 为所有目录生成文件统计信息

当您点击Update Dirs按钮时,您会看到这个初始警告:

巴夫曼2

如果您将/usr目录和/var目录添加到bafman列表,则10,000个目录是一种特殊情况。 在我们的示例中,我们有2,365个目录,扫描其中的所有文件大约需要5分钟。

扫描所有目录中的所有文件时,将显示以下进度屏幕:

巴夫曼3

完成所有操作后,主屏幕将更新如下:

巴夫曼4

再次重要的是要注意,您可以单击“文件大小”列以按升序排序(最小的顶部),然后再次单击降序(顶部文件大小最大的目录)。

只需键入要前进的目录,即可搜索目录名称 。 例如,键入/etc/default ,屏幕将滚动到该目录。

Hide Dir按钮 – 从bafman列表中删除目录

我注意到我有一个名为/cdrom2的目录,我忘记了我在测试“假”目录/cdrom (你必须保留)时创建的。 所以让我们通过单击Hide Dir按钮从bafman列表中删除/cdrom2

巴夫曼5

目录/cdrom2已从驱动器中删除,因此ModifiedOwner字段显示为Deleted 。 此屏幕上的这些和其他字段在“ 编辑注释”部分下描述。

暂时选择OK按钮隐藏子目录,然后出现此屏幕:

巴夫曼6

可以隐藏目录并将其下的所有子目录保存在bafman列表中。 然后可以隐藏或单独保存这些单独的子目录。

Edit comments按钮 – 输入任何目录的注释。

使用Linux / Ubuntu目录时,您必须记住有关它们的大量详细信息,以便在此处输入一些重要注释。

从主屏幕键入/etc/default ,屏幕滚动到该目录。 双击它或点击空格键选择目录,然后单击Edit comments按钮:

巴夫曼7

已输入适当的评论。 请注意,如果您将来Hide该目录,则注释将丢失。 每次单击“ Enter comments按钮时,屏幕上的其他字段将自动生成,并将保存在主屏幕上。

即使您没有在此屏幕上输入注释,并且生成的目录计数也算作一个事务。 (稍后有关交易计数的更多信息)。

Add Dir按钮 – 将目录添加到bafman列表

您可以将任何目录添加到bafman列表中,它也会提示自动添加子目录。 在这个例子中,我们将添加包含数百个子目录的目录/lib

单击“ Add Dir按钮时,将显示此屏幕,并将您的主目录选为默认值:

巴夫曼8

你可能已经怀疑我的真实姓名不是WinEunuchs2Unix,因为这个截图显示。

  • 单击目录下拉箭头
  • 从列表中选择Other...
  • 开始输入/lib/systemd/
  • 单击Open

选择要添加的目录后,屏幕重新出现,我们输入了适当的注释:

巴夫曼9

单击“ OK以添加目录,然后系统会提示您在其下添加子目录:

巴夫曼10

在我们的示例中,单击“ Yes

注意:如果您尝试添加整个/lib目录和所有子目录,则可能会收到错误消息“未知按钮返回代码”,如果从终端调用bafman,则会显示以下错误消息:

 line 575: /usr/bin/yad: Argument list too long 

如果您从桌面快捷方式运行bafman,您将在/var/log/syslog看到此错误。 记住 bash在传递给GUI Yad时对大型数组的限制有限制。

在其下添加新目录和子目录后,主屏幕重新出现。 开始输入/lib/systemd ,屏幕向下滚动到此部分:

巴夫曼11

这是一个重要的注意事项:添加新目录时,它会附加到bafman列表的底部。 只需单击“目录名称”列标题即可按字母顺序排列列表。

文件计数和文件大小的所有统计信息均为零。 如果它只是一个目录,我们只需单击Edit comments按钮,我们就会生成这些统计信息。 但是点击Update Dirs按钮更容易,然后去喝咖啡。

在添加新目录时输入注释,注释由其下的所有子目录inheritance(如果您选择同时添加它们)。

Tag files按钮 – 选择将由“运行”命令使用的文件

这是巴夫曼的心脏,不幸的是此时不完整。 已经设置了目录中的标记文件,但是需要设计设计以在select目录下的子目录中标记文件。 希望社区意见有助于设计。

让我们开始导航到目录/home/rick/.local/share/nautilus/scripts ,双击选择它,然后单击Tag files按钮:

巴夫曼12

如果你像我一样,你已经花了很多时间编写你的脚本(或文档),所以标记它们以便后续复制是一个好主意。 这是一个简短的列表,我们想要一切,所以让我们点击Tag All按钮:

巴夫曼13

默认值仅为常规文件。 这是我需要输入选择目录时要做什么的地方…

很快就能完成整理,点击Untag All按钮:

巴夫曼14

默认设置是取消标记所有文件类型。

感谢您保持清醒并期待您的意见。 下一个答案将发布WIP bash代码。