Linux系统中获取路径的文件名的方法
发布网友
发布时间:2022-04-20 12:40
我来回答
共1个回答
热心网友
时间:2022-04-12 00:18
这篇文章主要介绍了Linux系统中获取路径的文件名的方法,文中总结出了两条,需要的朋友可以参考下
代码如下:
[root@dabu.info
]#basename
/root/aaa/bbb/dabu.txt
显示:
代码如下:
dabu.txt
#获取路径的文件名
shell脚本中如何获得脚本文件所在路径?
方法一:
代码如下:
[root@dabu.info
]#DIR=$(cd
"$(dirname
"$0")";
pwd)
[root@dabu.info
]#echo
$DIR
但是像这种dirname
"$0"这种写法,在遇到source命令时会得到错误的结果。
方法二:
代码如下:
[root@dabu.info
]#echo
"$(
cd
"$(
dirname
"${BASH_SOURCE[0]}"
)"
&&
pwd
)"
上面一行命令可以获得脚本的绝对轮径,无论你在何处调用这个脚本。
但是如果含有软链接,就无法使用了。所以,我们为了能正确解析指向脚本的软链接,可以使用下面的多行命令:
代码如下:
SOURCE="${BASH_SOURCE[0]}"
while
[
-h
"$SOURCE"
];
do
#
resolve
$SOURCE
until
the
file
is
no
longer
a
symlink
DIR="$(
cd
-P
"$(
dirname
"$SOURCE"
)"
&&
pwd
)"
SOURCE="$(readlink
"$SOURCE")"
[[
$SOURCE
!=
/*
]]
&&
SOURCE="$DIR/$SOURCE"
#
if
$SOURCE
was
a
relative
symlink,
we
need
to
resolve
it
relative
to
the
path
where
the
symlink
file
was
located
done
DIR="$(
cd
-P
"$(
dirname
"$SOURCE"
)"
&&
pwd
)"
也可与source,bash
-c命令使用
但是,如果你在脚本中使用先cd切换到其他目录,在运行时上面的命令片段时,则上面的命令不能等到正确的结果。可以参考关于$CDPATH
陷阱的文章。想理解它如何其作用的,可以运行下面的代码:
代码如下:
#!/bin/bash
SOURCE="${BASH_SOURCE[0]}"
while
[
-h
"$SOURCE"
];
do
#
resolve
$SOURCE
until
the
file
is
no
longer
a
symlink
TARGET="$(readlink
"$SOURCE")"
if
[[
$SOURCE
==
/*
]];
then
echo
"SOURCE
'$SOURCE'
is
an
absolute
symlink
to
'$TARGET'"
SOURCE="$TARGET"
else
DIR="$(
dirname
"$SOURCE"
)"
echo
"SOURCE
'$SOURCE'
is
a
relative
symlink
to
'$TARGET'
(relative
to
'$DIR')"
SOURCE="$DIR/$TARGET"
#
if
$SOURCE
was
a
relative
symlink,
we
need
to
resolve
it
relative
to
the
path
where
the
symlink
file
was
located
fi
done
echo
"SOURCE
is
'$SOURCE'"
RDIR="$(
dirname
"$SOURCE"
)"
DIR="$(
cd
-P
"$(
dirname
"$SOURCE"
)"
&&
pwd
)"
if
[
"$DIR"
!=
"$RDIR"
];
then
echo
"DIR
'$RDIR'
resolves
to
'$DIR'"
fi
echo
"DIR
is
'$DIR'"
Linux系统中获取路径的文件名的方法
dabu.txt #获取路径的文件名 shell脚本中如何获得脚本文件所在路径?方法一:代码如下:[root@dabu.info ]#DIR=$(cd "$(dirname "$0")"; pwd)[root@dabu.info ]#echo $DIR 但是像这种dirname "$0"这种写法,在遇到source命令时会得到错误的结果。方法二:代码如下...
Linux下获取路径的函数实践linux获取路径的函数
1. getcwd函数:getcwd函数可以获取当前工作路径。它有两个参数,第一个参数表示要获取的当前工作路径的字符串的长度,第二个参数是一个字符指针,用于存储获取到的当前工作路径。示例代码如下:“`char path[100];if (getcwd(path, 100) != NULL){ printf(“My current directory is: ...
linux读取目录文件linux读取目录
1、登录Linux系统之后打开终端,确定你要找关键字的目录。2、查看下当前目录下所有的文件,你所要找的关键字就在当前目录下某个文件里面。3、find-typef-print这个命令可以列出当前目录下的所有文件。4、type后面的f是file的意思,所以只列出文件,而排除文件夹。5、接下来只要在find命令后面加上exec命...
linux文件路径查看linux文件路径查看
步骤1、打开linux系统,在linux的桌面的空白处右击。步骤2、在弹出的下拉选项里,点击打开终端。步骤3、在终端里面输入cd命令进入到一个目录,接着输入【pwd】。步骤4、然后回车就可以看到文件具体的路径的信息了。linux查看当前所在目录的全路径?1、打开shell连接工具,连接上服务器,pwd查看当前目录,一...
linux获取文件路径javalinux获取文件路径
方法1:使用find命令在Linux中搜索文件和文件夹 find命令被广泛使用,并且是在Linux中搜索文件和文件夹的著名命令。它搜索当前目录中的给定文件,并根据搜索条件递归遍历其子目录。它允许用户根据大小、名称、所有者、组、类型、权限、日期和其他条件执行所有类型的文件搜索。运行以下命令以在系统中查找给定...
在Linux中如何查找文件及方法
1.命令格式:find pathname -options [-print -exec -ok ...]2.命令功能:用于在文件树种查找文件,并作出相应的处理 3.命令参数:pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件...
linux命令 find找一个文件 只在当前目录找么? 想整个电脑的找 怎么办...
这个命令语法看起来很容易就明白了,就是直接在find后面写上 -name,表明要求系统按照文件名查找,最后写上httpd.conf这个目标文件名即可。稍等一会系统会在计算机屏幕上显示出查找结果列表: etc/httpd/conf/httpd.conf 这就是httpd.conf这个文件在Linux系统中的完整路径。查找成功。 如果输入以上查找命令后系统并没有...
如何获取linux进程的执行文件路径
1、根据进程名,找出pid 例如python # ps -ef|grep python 找到python的pid 2、根据pid可在/proc中找到执行文件路径 # ls -l /proc/pytohpid
linux如何查找以某个字母打头的文件或文件夹 比如,/etc目录下很多文件...
locate命令比find命令更快,因为它使用了先前构建的数据库,而find命令通过所有实际目录和文件在实际系统中进行搜索。locate命令返回包含指定字符组的所有路径名的列表。数据库从cron定期更新,但您也可以随时更新数据,以便您可以获得最新的结果。为此,请在提示符下键入以下命令:sudo updatedb 出现提示时输入...
linux中find命令的使用方法有哪些?
find可以根据文件名,文件类型,文件大小,文件拥有者,文件所属组,文件权限等等来查询,这些只是一般常用的参数,格式:find [路径][参数][表达式]满意请采纳