Shell /终端:使用目录的绝对路径对目录中的所有文件执行命令

里奇·本德尔

我正在尝试为目录中的每个文件执行命令,但同时使用它们的绝对路径(例如/home/richi/mydir/myfile.py)而不是它们的相对路径(例如myfile.py)。

换句话说,我想基于目录的绝对路径对目录中的文件执行命令-类似于for file in *.py; do thecommand -a "$file"; done但不完全相同。

我之所以这样问,是因为我试图实现在Ubuntu 14.04环境中运行的Travis CI脚本,该脚本将安装并用于pyminifier递归地压缩目录中的所有Python代码文件。

请注意,我要问的可能与帖子相似,但事实并非如此。

阿巴内特

由于您使用的是具有完整用户名的标准Linux发行版,因此您可以使用以下realpath命令:

打印解析的绝对文件名…

例如:

$ pwd
/home/abarnert/src/test
$ touch 1
$ realpath 1
/home/abarnert/src/test/1

而已。

如果您不知道如何从内部使用它bash,则可以使用以下$(…)语法调用子命令

$ echo $(realpath 1)
/home/abarnert/src/test/1

当然,您希望将变量的值传递给它file,但这很简单:

$ file=1
$ echo $(realpath "$file")
/home/abarnert/src/test/1

我假设您在这里使用bash。使用不同的sh样式外壳,情况将有所不同。用tcsh或zsh或fish或其他东西,可能会更加不同。


一个真正古老的用户区或一个真正精简的用户区(例如,对于嵌入式系统)可能不包括realpath在这种情况下,可以使用readlink,因为GNU版本通常会添加所有内容,包括几个厨房水槽,并且可以用作realpath替代品。

或者,如果最糟的话,Pythonrealpath自2.2起就提供了一个函数:

$(python -c 'import os,sys; print(os.path.realpath(sys.argv[1]))' "$file")

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Snakemake:如何指定shell命令的绝对路径

通过Shell脚本在动态目录中执行命令

获取目录中所有文件的绝对路径

如何列出具有绝对路径的目录中的所有文件

确定Shell程序中的相对路径还是绝对路径

从当前Shell中的文件执行命令

Shell脚本列出文件夹中的所有目录并为每个目录运行命令

从bash shell脚本中的glob从目录内的命令行执行命令

用于输出二进制绝对路径的Shell命令

获取shell脚本变量的绝对路径

检查shell变量是否包含绝对路径

Shell脚本在给定目录中执行命令集

如何获得所有目录和文件的列表,每行都有绝对路径?

Linux,如何在shell promt中显示绝对路径?

Shell - 对目录中的所有文件执行 imagemagic 并存储结果

如何从Shell命令删除目录中的所有其他文件?

Shell命令在所有子目录中创建文本文件

rsync文本文件中具有绝对路径的目录列表

如何使用循环使〜/ .bashrc执行〜/ Shell目录中的所有脚本?

IOError:[Errno 2]没有这样的文件或目录-在Linux上,使用绝对路径

对目录中的所有文件执行命令

对目录中的所有文件执行命令的别名

防止在 Makefile 中执行命令 shell

Shell脚本:在“屏幕”中执行命令

如何执行命令并使用Shell脚本将文件存储在文件夹中?

使用Shell脚本在文件夹和子文件夹中执行命令

如何使用Shell脚本备份目录和文件,包括所有子目录和文件?

如何使用Shell脚本在gnuplot中执行命令?

使用Shell脚本压缩目录中1GB以上的所有文件