我想做的是能够在find
不费力地键入完整路径名的情况下,将路径名结果作为参数引用到另一个命令。例子:
$ find -name testfile
path1
path2
path3
$ cd path2
有人怎么做?
在bash中,如果变量具有文件的完整路径的值(即/home/spider/src/myscript.py),则可以使用变量操作来获取基名和目录名。
因此,例如:
filepath='/home/spider/src/myscript.py'
filename=${filepath##*/}
echo $filename
myscript.py
path=${filepath%/*}
echo $path
/home/spider/src
Bash内置的read命令,支持使用-a选项将stdin读入数组,因此您可以使用以下命令:
IFS='$\n' read -d '' -a files < <(find . -name testfile -type f)
Shell数组变量现在包含所有文件及其路径。使用以前的外壳程序字符串操作构造,您现在可以执行
cd ${files[2]%/*}
更改为第二个文件的路径。
有关上述命令的一些注意事项:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句