选择目录下的文件?

选择目录下的文件?

在 bash 中,当在目录下时,我们如何选择文件或子目录而不实际输入其名称或什至部分名称?

有没有办法枚举或交替文件或子目录,例如我们如何使用 TAB 在网页中的多个内容之间切换?

打开文件或子目录是否取决于应用程序?

如果是,

  • 我们如何在多个子目录中选择一个子目录cd

  • 我们如何从多个pdf文件中选择一个pdf文件evince

例如

$ ls .
  subdir1 subdir2
$ cd 

我们可以选择subdir2for cd,而不需要输入subdir2任何内容吗?理想情况下,最好使用键在和Tab之间进行选择和交替,这样我们就可以停在,然后点击。subdir1subdir2subdir2Return

答案1

bind TAB:menu-complete

然后运行evinceTAB。多次点击TAB以浏览不同的文件。

答案2

文件可以通过以下方式枚举

for file in .* * do;
  # if targeted at files:
  test -f "$file" || continue
  # if targeted at directories:
  test -d "$file" || continue
  # in both cases arises the question: What about symlinks?
done

或(以节省排序时间)

ls --quoting-style=escape | while IFS= read file; do...
  : check type like above
done

find . -type f -maxdepth 1 -printf %f\\n | while IFS= read -r file; do...

find . -type d -maxdepth 1 -printf %f\\n | while IFS= read -r file; do...

(该find变体不处理奇怪的文件名。)

相关内容