【问题标题】:How to ls/cd using indexes rather than names [closed]如何使用索引而不是名称来 ls/cd [关闭]
【发布时间】:2016-09-25 23:23:28
【问题描述】:

所以我在文件系统中移动的正常方式是使用ls --color 查看所有文件和目录,然后输入cd [directory],然后再次输入ls --color,冲洗并重复,直到找到一个文件,其中在我输入vim [file] 进行编辑后。

这是一种非常低效的 IMO 处理方式。我设想了这些功能:

  1. cdls --color 组合起来,这样当我将cd 放入一个目录时,它就会输出带有颜色的内容(这样我就可以知道什么是目录,什么是文件等等)
  2. lscd 使用索引。我的意思是在[3] 之类的目录中的所有内容旁边输出ls 打印数字作为第四项或其他内容,这样我所要做的就是输入cd [3]。这会有所帮助,因为文件名有时很长(就像很长一样)并且包含空格,而且由于不可避免的拼写错误,我不想重新输入长命令。

我不确定这样的东西是否已经在 bash 中,或者它是否是我可以下载的插件,或者我是否只需要编写一个 shell 脚本,但任何帮助都会很棒!

编辑:我应该添加这个来探索文件系统。我没有要访问的目标文件。

【问题讨论】:

  • find . -iname 'filetofind' 可能会帮助您更快地搜索...
  • 问题是我不知道我在寻找什么我只是在寻找文件系统
  • 也许你会喜欢使用像午夜指挥官这样的可视化文件管理器。

标签: bash shell unix ls cd


【解决方案1】:

有多种方法可以更有效地浏览文件系统。

  1. 使用 shell 的自动完成功能。可能是解决您的问题的最有效方法。

    cd /a/TABTAB

    这将显示包含在/a/ 中的目录,或者,如果只有一个(与您目前输入的内容相对应),将使用它自动完成您的命令。

  2. 按照 cmets 中的建议使用 GUI。

  3. 您可以使用多个ls 和最后一个cd,而不是交替使用lscd

    $ ls /a  
    > b/ c/ d/  
    $ ls /a/b  
    > e/  
    $ ls /a/b/e  
    >fileIWant  
    $ cd /a/b/e  
    $ vim fileIWant
    

    您可以使用 ALT + 重复上一步的路径 ..
    你甚至不需要最后的cd,可以直接使用vim /a/b/e/fileIWant

  4. 递归使用lsls -R /a。输出可能有点难以使用。

【讨论】:

  • ls -R 早些时候我想到了,但是有没有办法使用索引呢?因为路径可能真的嵌套在那里
  • 我不推荐基于索引的解决方案,因为当目录包含 20 多个子目录时使用起来会很痛苦,这种情况可能经常发生。您是否尝试过基于自动完成的解决方案?我真的认为这是大多数人使用的。
  • 我还没有真正深入研究它是如何使用的,因为它非常直观,但会发生什么是它会尝试用有意义的东西自动完成你的命令行(所以,只有当你' 正在使用cd,但如果您正在使用像vim 这样的另一个命令,也可以使用文件。如果它因为有多个选择而失败,它将显示所有可能的选择。当您在键入目录后使用它时,它将列出目录的内容。但是,如果您已经开始输入文件或目录名称,它只会显示以您输入的内容开头的文件/目录
  • 我想有最好的方法来处理这个问题。我只是想知道是否有办法匹配可视文件系统的速度和鼠标 b/c 终端在很多其他事情上肯定更快。
  • 这就是我要说的,使用自动完成。例如要到我家,如果是/home/Aaron,我只会输入/h<TAB>/A<TAB>。假设我是唯一一个主目录以“A”开头的用户。如果有其他人,他们的目录和我的目录会在再次按下制表时显示出来
猜你喜欢
  • 2013-11-14
  • 2021-01-04
  • 1970-01-01
  • 2018-03-08
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
相关资源
最近更新 更多