Cha*_*ton 7 python command-line find locate
有时我想运行某些文件,但我不想一直导航到文件夹。
如果我知道文件名并且find -name file_name.py只返回一个结果,我可以使用它吗?
例如,不是一直导航到特定文件夹并调用:
python file_name.py
Run Code Online (Sandbox Code Playgroud)
我可以写:
python [ find -name file_name.py ]
Run Code Online (Sandbox Code Playgroud)
或者
python [ locate file_name.py ]
Run Code Online (Sandbox Code Playgroud)
或者某种“在我的整个计算机中搜索此文件名并使用它”的变体?最好在一行。
将该行添加shopt -s globstar到.bashrc主目录中的文件中。(要尝试一下,请在命令行中输入此内容,它只会在您当前的 shell 中生效。)
那么你可以用**/来表示“在当前目录或子目录中递归地等等”,即与简单find命令相同的东西。
python **/myscript.py
Run Code Online (Sandbox Code Playgroud)
警告:**/遍历目录的符号链接,而find不会。在 bash 中,您无法避免这种情况。在 zsh 中,它**/是开箱即用的,并且不遍历符号链接(***/在极少数情况下您想要遍历符号链接)。