Bash 复制文件时如何获取副本的绝对路径?

Bash 复制文件时如何获取副本的绝对路径?,bash,Bash,我是这样复制的: cp "$input_file_absolut_path" "$output_directory_absolut_path" copy_absolut_path="$output_directory_absolut_path/$(basename $input_file_absolut_path)" 现在,我想对复制的文件执行一些操作,但我不能只执行以下操作: copy_absolut_path="$output_directory_absolut_path/$input_

我是这样复制的:

cp "$input_file_absolut_path" "$output_directory_absolut_path"
copy_absolut_path="$output_directory_absolut_path/$(basename $input_file_absolut_path)"
现在,我想对复制的文件执行一些操作,但我不能只执行以下操作:

copy_absolut_path="$output_directory_absolut_path/$input_file_absolut_path"

获取复制文件绝对路径的任何提示?

如果文件名不包含斜杠,您可以将$output\u directory\u absolut\u path和basename$input\u file\u absolut\u path连接起来。

否,您必须使用$input\u file\u absolut\u路径。但是,由于您只将文件而不是整个目录结构复制到$output\u directory\u absolut\u路径中,因此必须这样做:

cp "$input_file_absolut_path" "$output_directory_absolut_path"
copy_absolut_path="$output_directory_absolut_path/$(basename $input_file_absolut_path)"
basename将只获取文件名,而不获取目录结构。然后将其与输出目录绝对路径连接。

解决方案 解释 如果输出目录绝对路径以/结尾,则$cd$输出目录绝对路径;pwd将返回不带尾随/的路径


$input\u file\u absolute\u path*/}返回最后一个/

之后的所有内容。感谢您的早期响应,这解决了我的问题。如果$output\u directory\u absolute\u path已经有一个尾随/?@ShammelLee,当您有一个带有多个斜杠的路径时,这将被忽略。在某个地方用双斜线做一个简单的cd/路径,你就会到达你想要的位置。不需要那些很难读懂的超级花哨的解决方案。很高兴知道。谢谢。感谢您的早期回复,我尝试了您之前的回复,但我在这里没有成功。basename解决了我的问题。新的Stackoverflow用户应该被强制阅读所有超过1000票的帖子: