在`find`输出结果中引用路径名

bl

我想做的是能够在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]%/*}

更改为第二个文件的路径。

有关上述命令的一些注意事项:

  • 选项-d”(请注意-d和”之间的空格)选择空字符作为读取的分隔符。
  • 如上所示,选项-a将标准输入读入索引数组(在本例中为“文件”)
  • <<((命令)在<(和)之间将命令的输出重定向到标准输入。这很方便阅读,您无法通过管道读取。
  • 我在find命令中添加了“ -type f”,以确保仅获取文件
  • 对于bash中的参考字符串操作操作数
  • 出于相同的目的,可以使用basename(1)和dirname(1)命令,但是它们会产生一个新进程,因此效率较低。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从`find -exec`中以{}传递的路径名中删除扩展名?

来自分类Dev

缩短Access中的对象路径名

来自分类Dev

从路径名扩展结果中排除目录

来自分类Dev

递归运行grep cmd并打印路径名和结果

来自分类Dev

包括路径名

来自分类Dev

在C中的URL中删除单点路径名

来自分类Dev

Route :: resource在Laravel 5.2中更改路径名?

来自分类Dev

在urls.py中扩展路径名

来自分类Dev

获取jquery ajax中链接的路径名

来自分类Dev

在postgres中设置trigger_file的路径名

来自分类Dev

SSIS Visual Basic-路径名中的单引号

来自分类Dev

将路径名设置为.bashrc文件中的别名

来自分类Dev

jQuery中带有参数的路径名

来自分类Dev

使用sed在Linux中搜索和替换路径名

来自分类Dev

python从目录树中打印.c文件的路径名

来自分类Dev

Split-Path 从服务路径名中删除 ¨´´

来自分类Dev

什么是全路径名?

来自分类Dev

分解长路径名

来自分类Dev

什么是全路径名?

来自分类Dev

如何逐行读取文件中的路径名,并将其应用于每个路径名?

来自分类Dev

如何抑制FindBugs警告(对绝对路径名的硬编码引用)?

来自分类Dev

为什么不能将一个命令的路径名输出重定向到“ cd”?

来自分类Dev

鉴于文件的完整路径名在计算机之间会发生变化,如何引用要在C ++中打开的文件?

来自分类Dev

用boost解决符号链接时,结果不等于原始路径名

来自分类Dev

路径名中的文件名,不包括(未知)扩展名

来自分类Dev

路径名称中的句点

来自分类Dev

从算法上将路径名包含/排除规则的序列转换为find命令?

来自分类Dev

如何使用find命令列出包含空格的文件的路径名?

来自分类Dev

Lisp Lisp中的路径名,其中包含通配符的文件名

Related 相关文章

  1. 1

    如何从`find -exec`中以{}传递的路径名中删除扩展名?

  2. 2

    缩短Access中的对象路径名

  3. 3

    从路径名扩展结果中排除目录

  4. 4

    递归运行grep cmd并打印路径名和结果

  5. 5

    包括路径名

  6. 6

    在C中的URL中删除单点路径名

  7. 7

    Route :: resource在Laravel 5.2中更改路径名?

  8. 8

    在urls.py中扩展路径名

  9. 9

    获取jquery ajax中链接的路径名

  10. 10

    在postgres中设置trigger_file的路径名

  11. 11

    SSIS Visual Basic-路径名中的单引号

  12. 12

    将路径名设置为.bashrc文件中的别名

  13. 13

    jQuery中带有参数的路径名

  14. 14

    使用sed在Linux中搜索和替换路径名

  15. 15

    python从目录树中打印.c文件的路径名

  16. 16

    Split-Path 从服务路径名中删除 ¨´´

  17. 17

    什么是全路径名?

  18. 18

    分解长路径名

  19. 19

    什么是全路径名?

  20. 20

    如何逐行读取文件中的路径名,并将其应用于每个路径名?

  21. 21

    如何抑制FindBugs警告(对绝对路径名的硬编码引用)?

  22. 22

    为什么不能将一个命令的路径名输出重定向到“ cd”?

  23. 23

    鉴于文件的完整路径名在计算机之间会发生变化,如何引用要在C ++中打开的文件?

  24. 24

    用boost解决符号链接时,结果不等于原始路径名

  25. 25

    路径名中的文件名,不包括(未知)扩展名

  26. 26

    路径名称中的句点

  27. 27

    从算法上将路径名包含/排除规则的序列转换为find命令?

  28. 28

    如何使用find命令列出包含空格的文件的路径名?

  29. 29

    Lisp Lisp中的路径名,其中包含通配符的文件名

热门标签

归档