yh *_*eah 19 command-line files directory
是否可以不通过名称而是通过其在文件夹中的(编号)位置从终端打开文件?或者有其他选择吗?
因为名字太长了。
Jac*_*ijm 32
只是为了好玩,从字面上回答这个问题:
#!/usr/bin/env python3
import os
import subprocess
show_hidden = False
currfiles = os.listdir("./")
if not show_hidden:
currfiles = [f for f in currfiles if not f.startswith(".")]
n = 1
for f in currfiles:
print(str(n) + ". " + f)
n = n + 1
picked = int(input("Quick, quick, give me a number:\n"))
subprocess.run(["xdg-open", currfiles[picked - 1]])
Run Code Online (Sandbox Code Playgroud)
...简单:
注销并重新登录,只需键入即可开始使用该命令
$ o
Run Code Online (Sandbox Code Playgroud)
在终端
如果您还想显示隐藏文件,请更改
show_hidden = False
Run Code Online (Sandbox Code Playgroud)
进入:
show_hidden = True
Run Code Online (Sandbox Code Playgroud)
小智 28
Bash 中有一个鲜为人知的功能,它允许您在不调用 python 或任何其他第三方工具的情况下执行此操作,只需一行:
select file in *; do open "$file"; break; done
Run Code Online (Sandbox Code Playgroud)
小智 16
在纯 bash 中,使用以下select
语句:
PS3='Quick, quick, give a number: '
select file in *
do
xdg-open "$file"
break
done
Run Code Online (Sandbox Code Playgroud)
设置 PS3 只是眼花缭乱。如果您省略它,您将只会得到默认提示。如果您省略了 break 语句,select 语句将循环直到您按下 CTRL-D 或 CTRL-C。
当然,您也可以将其作为单行运行:
select file in *; do xdg-open "$file"; break; done
Run Code Online (Sandbox Code Playgroud)
您可以安装和使用mc
,午夜指挥官。它是一个带有菜单等的文本用户界面,其灵感来自于旧的 Norton Commander,当人们使用 MSDOS(在 Windows 之前)时很流行。
sudo apt update
sudo apt install mc
Run Code Online (Sandbox Code Playgroud)
并在终端窗口或文本屏幕中启动它,
mc
Run Code Online (Sandbox Code Playgroud)
$ ls
results.log
string
Templates
textfile
time
time.save
vegetables
vegetablesbsh
Run Code Online (Sandbox Code Playgroud)
怎么样
ls | sed -n 3p
打印第三个文件名
Templates
打开它-
xdg-open "$(ls | sed -n 3p)"
通常有效。
把它放在一个脚本中
results.log
string
Templates
textfile
time
time.save
vegetables
vegetablesbsh
Run Code Online (Sandbox Code Playgroud)
脚本名称:打开
将其保存在主文件夹中。跑:
./open file_number
Run Code Online (Sandbox Code Playgroud)